Fork me on GitHub
posts - 148,  comments - 5,  views - 85208

1.导入jar包

 

2.配置文件

a.    applicationContext.xml文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-3.2.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx-3.2.xsd ">
 
<!-- 配置数据源dataSource -->
<!-- 加载配置文件 -->
<context:property-placeholder location="classpath:db.properties"/>
<!-- 数据库连接池 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
       <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
        <property name="maxActive" value="10"/>
        <property name="maxIdle" value="5"/>
</bean>  
 
<!-- 配置sqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <!-- 配置数据源 -->
    <property name="dataSource" ref="dataSource"/>
    <!-- 加载mybatis的配置文件 -->
    <property name="configLocation" value="classpath:SqlMapConfig.xml"/>
</bean>
 
<!-- 原始dao -->
<bean id="userDao" class="com.baidu.dao.imp.UserDaoImp">
    <property name="sqlSessionFactory"  ref="sqlSessionFactory"/>
</bean>
 <!-- mapper代理配置 -->
<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
        <!-- 指定mapper接口 -->
        <property name="mapperInterface" value="com.baidu.dao.UserDao"/>
        <!-- 注入SqlSessionFactory -->
        <property name="sqlSessionFactory"  ref="sqlSessionFactory"/>
 </bean>
</beans>

 

1
2
3
4
5
6
7
8
9
10
<!-- 使用mapper扫描器创建mapper代理对象
扫描器把自动将包下边的mapper扫描出来创建代理对象在spring容器注册,bean的id为类名(首字母小写)
 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
   <!-- 指定要扫描的包路径,如果要扫描多个包,中间使用半角逗号分隔
   注意:如果使用扫描器,不需要在sqlMapConfig.xml中加载mapper,要将mapper.xml和mapper.java放在同一个目录且同名
    -->
   <property name="basePackage" value="com.baidu.dao"/>
   <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
</bean>

  

 

b.    SqlMapperConfig.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <typeAliases>
        <typeAlias type="com.baidu.pojo.User" alias="u" />
    </typeAliases>
    <!-- 加载mapper.xml -->
    <mappers>
        <mapper resource="UserMapper.xml" />
    </mappers>
</configuration>

c. XxxMaper.xml文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?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">
 
 
<mapper namespace="com.baidu.dao.UserDao">
    <!-- 查询用户通过id -->
    <select id="findById" parameterType="u" resultMap="u">
        SELECT id,username,sex,birthday,address
        FROM USER
        <where>
        <if test="id!=null and id!=''">
            and id = #{id}
        </if>
        <if test="username!=null and username!=''">
            and username like '%${username}%'
        </if>
        </where>
    </select>
</mapper>

d.   db.propertis

1
2
3
4
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=123

3.相关类

a.UserDao.java

1
2
3
4
5
6
7
package com.baidu.dao;
 
import com.baidu.pojo.User;
 
public interface UserDao {
    public User findById(User u);
}

b.UserDaoImp.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package com.baidu.dao.imp;
 
import java.util.List;
 
import org.apache.ibatis.session.SqlSession;
import org.mybatis.spring.support.SqlSessionDaoSupport;
 
import com.baidu.dao.UserDao;
import com.baidu.pojo.User;
 
public class UserDaoImp extends SqlSessionDaoSupport implements UserDao{
 
    @Override
    public User findById(User u) {
        //获取session
        // Sqlsession定义为局部变量
        SqlSession sqlSession = this.getSqlSession();
        User user = sqlSession.selectOne("com.baidu.dao.UserDao.findById", u);
        return user;
    }
}

  继承sqlSessionDaoSupport的原因是

 

c.User.java

1
2
3
4
5
6
7
public class User implements Serializable {
    private int id;
    private String username;// 用户姓名
    private String sex;// 性别
    private Date birthday;// 生日
    private String address;// 地址
}

d.MyBatisTest.java

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class MyBatisTest {
        private ApplicationContext applicationContext;
        @Before
        public void setup(){
            //加载spring配置文件
            //取出spring的容器
            applicationContext =
                    new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
        }
        @Test
        public void testFindUserById() throws Exception {
             
            //从容器中取出dao
            UserDao userDao = (UserDao) applicationContext.getBean("userDao");
            //调用dao的方法
            User u=new User();
            u.setUsername("fan");
            User user = userDao.findById(u);
            System.out.println(user);
             
        }
         
}

  

posted on   TopTime  阅读(290)  评论(0)    收藏  举报
< 2025年4月 >
30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 1 2 3
4 5 6 7 8 9 10

点击右上角即可分享
微信分享提示