MyBatis项目搭建

pom.xml

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.3.0</version>
</dependency>
<dependency>
  <groupId>com.microsoft.sqlserver</groupId>
  <artifactId>sqljdbc4</artifactId>
  <version>4.0</version>
</dependency>

1.mybatis配置文件

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE configuration
 3   PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 4   "http://mybatis.org/dtd/mybatis-3-config.dtd">
 5 <configuration>
 6     <properties resource="db.properties">
 7     </properties>
 8     <environments default="development">
 9         <environment id="development">
10             <transactionManager type="JDBC" />
11             <dataSource type="POOLED">
12                 <property name="driver" value="${mydb.driverClassName}" />
13                 <property name="url" value="${mydb.url}" />
14                 <property name="username" value="${mydb.username}" />
15                 <property name="password" value="${mydb.password}" />
16             </dataSource>
17         </environment>
18     </environments>
19     <!-- 加载 映射文件 -->
20     <mappers>
21         <!--通过resource方法一次加载一个映射文件 -->
22         <!-- 测试本例中的dao方式 -->
23         <!-- <mapper resource="sqlmap\User.xml"/> -->
24 
25         <!-- 通过mapper接口加载单个 映射文件 遵循一些规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致,且在一个目录 
26             中 上边规范的前提是:使用的是mapper代理方法 -->
27         <!-- <mapper class="cn.itcast.mybatis.mapper.UserMapper"/> -->
28 
29         <!-- 批量加载mapper 指定mapper接口的包名,mybatis自动扫描包下边所有mapper接口进行加载 遵循一些规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致,且在一个目录 
30             中 上边规范的前提是:使用的是mapper代理方法 -->
31             <package name="myproject.mybaties.mapper"/> 
32     </mappers>
33 </configuration>
View Code

2.db.properties文件

mydb.username=sa
mydb.password=123456
mydb.url=jdbc:sqlserver://localhost:1433;databaseName=JavaTestDB
mydb.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver

connection.initialSize=1
connection.maxActive=100
connection.maxIdle=30
connection.minIdle=5
connection.maxWait=5000
connection.removeAbandoned=true
connection.removeAbandonedTimeout=3000
connection.logAbandoned=false

 

2.通过SqlSessionFactoryBuilder创建sqlSessionFactory

3.通过sqlSessionFactory创建sqlSession

加载方式:

String resource = "mybatis-config.xml"
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

4.通过Mapper代理方式创建接口相当于Dao接口:

注意xml 中namespace必须和class名称相同,sql id和mapper接口方法相同

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!-- namespace命名空间,作用就是对sql进行分类化管理,理解sql隔离 注意:使用mapper代理方法开发,namespace有特殊重要的作用 -->

<mapper namespace="myproject.mybaties.mapper.UserMapper">
    <select id="findUserList"  resultType="myproject.mybaties.beans.User">
        SELECT * FROM testUser
    </select>
</mapper>

调用方式:

SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
userMapper.findUserList()

 

5.MyBatis创建Dao

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!-- namespace命名空间,作用就是对sql进行分类化管理,理解sql隔离 注意:使用mapper代理方法开发,namespace有特殊重要的作用 -->
<mapper namespace="test">

    <!-- 在 映射文件中配置很多sql语句 -->
    <!-- 需求:通过id查询用户表的记录 -->
    <!-- 通过 select执行数据库查询 id:标识 映射文件中的 sql 将sql语句封装到mappedStatement对象中,所以将id称为statement的id 
        parameterType:指定输入 参数的类型,这里指定int型 #{}表示一个占位符号 #{id}:其中的id表示接收输入 的参数,参数名称就是id,如果输入 
        参数是简单类型,#{}中的参数名可以任意,可以value或其它名称 resultType:指定sql输出结果 的所映射的java对象类型,select指定resultType表示将单条记录映射成的java对象。 -->
    <select id="selectUserByName" parameterType="java.lang.String" resultType="myproject.mybaties.beans.User">
        SELECT * FROM testUser where userName LIKE '%${value}%'
    </select>
    
    <select id="selectUserList" resultType="myproject.mybaties.beans.User">
        SELECT * FROM testUser
    </select>
</mapper>

调用方式:

SqlSession sqlSession = sqlSessionFactory.openSession();

List<User> list = sqlSession.selectList("test.selectUserList","小明");

 

posted on 2016-01-27 14:55  Not always  阅读(81)  评论(0)    收藏  举报