利用maven搭建一个web项目,
项目整合SSM框架,用到的jar包如下:
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope></dependency><!-- 添加Servlet支持 --><dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version></dependency><dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.1</version></dependency><!-- 添加jtl支持 --><dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version></dependency><!-- 添加Spring支持 --><dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.1.7.RELEASE</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>4.1.7.RELEASE</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>4.1.7.RELEASE</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.1.7.RELEASE</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.1.7.RELEASE</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.1.7.RELEASE</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.1.7.RELEASE</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>4.1.7.RELEASE</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>4.1.7.RELEASE</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>4.1.7.RELEASE</version></dependency><dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.3</version></dependency><!-- 添加日志支持 --><dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version></dependency><dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.12</version></dependency><!-- 添加mybatis支持 --><dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.3.0</version></dependency><!-- jdbc驱动包 --><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.24</version></dependency><!-- 添加连接池druid支持 --><dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.16</version></dependency><dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope></dependency>DAO层代码编写
1、补充目录
用idea工具新建一个普通的maven web项目,新项目的目录结构如下,目前是不完整的,需要我们补充完善。
???在main目录下新建java目录 ,并且转为sources root,操作:
右键目录–>make directory as –> sources root。
???还要在main目录下新建一个放配置文件的resources文件夹,并转为resources root。操作:
右键文件夹 –> make directory as –> resources root。
???如果要做单元测试,则在src下新建test文件夹(和main文件夹同一级),再在test下新建java文件夹,并把java文件夹转为sources root即可。完成后目录结构如下:
???现在基本的需要用到的文件夹就创建完成了。
2、新建实体类
新建一个test.domain包用于放实体类。新建实体类Book,示例用就简单点3个字段,此处类的属性都和数据表的字段是对应一致的。
???3、建dao接口
先建一个包,叫test.dao,当然也可以叫mapper,看个人习惯吧。在包里新建BookDao接口。
???接口现在只有一个简单的功能,通过id查找Book实体类。
public Book findById(Integer id);dao接口完成之后,mybatis是不需要写实现类的,我们需要在resources下建一个和接口在同一个包路径的一个包,来放置映射文件,这样编译的时候会和接口在同一路径中。
???映射文件BookDao.xml和接口名称一致。映射文件主要内容:
<mapper namespace="test.dao.BookDao"> <select ?parameterType="int" resultType="book"> select * from book where id = #{id}; </select></mapper>因为类字段和数据库表字段完全一致,所以这里返回实体可以使用resultType,否则需要定义resultMap。
映射文件写完后,按理需要写mybatis主配置文件,但现在和spring整合所以不需要单独写mybatis配置文件,全交给spring即可。
4、srping配置文件
在resource文件夹下新建srpring配置文件:applicationContext.xml。
关于dao层的配置:
<!--DAO 层配置文件开始--><!-- 配置数据源 --><bean ?> <property name="url" value="jdbc:mysql://localhost:3306/maven?useUnicode=true&characterEncoding=UTF-8"/> <property name="username" value="root"/> <property name="password" value="root"/></bean><!-- 配置mybatis的sqlSessionFactory --><bean ?> <property name="dataSource" ref="dataSource" /> <!--扫描pojo包,给包下所有对象起别名--> <property name="typeAliasesPackage" value="test.domain" /></bean><!-- 扫描接口包路径,生成包下所有接口代理对象 ,并放入spring容器中 --><!-- DAO接口所在包名,Spring会自动查找其下的类 --><bean > <property name="basePackage" value="test.dao" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property></bean><!--DAO 层配置文件结束-->到此,dao层相关代码编写完毕,可以做一个单元测试看到底起不起作用。
5、单元测试
在test包下写单元测试的代码。
???测试代码:
public class BookTest { @Test public void findById(){ ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); BookDao bean = ac.getBean(BookDao.class); Book book = bean.findById(1); System.out.println(book.getName()); }}剩下的,可以自己造些数据测试是否正常。