Mybatis的使用(1)
1:新建maven项目,file->project->maven
2:在建好的maven项目中,打开pom.xml文件,加入mybatis所需要的依赖:
<!-- mybatis核心包-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
<!-- java连接数据库-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!-- 单元测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
3:由于涉及到静态资源的导出问题,故需要在pom.xml中加入如下代码
<!-- 静态资源导出问题-->
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
4:由于未涉及到spring,springmvc等,故三层架构先建立一层,也就是dao层(数据层),在dao层建立一个接口(userMapper),然后再新建一个userMapper.xml文件,方便动态代理模式的使用

5:在mysql中建立一张用户表(user),包含id,name,pwd等三个简单字段
6:在建立一个JavaBean,建立一个pojo包,包中建立一个user实体类,与数据库中的user表对应。如下所示:
public class User {
    private Integer Id;
    private String name;
    private String pwd;
    public User() {
    }
    public User(Integer id, String name, String pwd) {
        Id = id;
        this.name = name;
        this.pwd = pwd;
    }
    public User(String name, String pwd) {
        this.name = name;
        this.pwd = pwd;
    }
    public Integer getId() {
        return Id;
    }
    public void setId(Integer id) {
        Id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPwd() {
        return pwd;
    }
    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
    @Override
    public String toString() {
        return "User{" +
                "Id=" + Id +
                ", name='" + name + '\'' +
                ", pwd='" + pwd + '\'' +
                '}';
    }
}
7:准备工作完毕,下面需要建立一些xml文件和properties文件:
8:在resource包下建立database.properties文件(作用是为了连接数据库)以及mybatis.xml文件(mybatis核心配置文件)
database.properties文件:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql:///mybatis?useSSL=false&useServerPrepStmts=true&useUnicode=true&characterEncoding=utf-8
username=root
password=ztb
mybatis.xml文件:
<?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>
<!--数据库的资源路径-->
<properties resource="db.properties"></properties>
<!-- 别名-->
<typeAliases>
<package name="com.ztb.pojo"/></typeAliases>
<environments default="mysql">
<environment id="mysql">
<!-- 事务交给程序员来做-->
<transactionManager type="JDBC"></transactionManager>
<!-- mybatis中默认的连接池-->
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<!-- 注册usermapper-->
<mappers>
<mapper class="com.ztb.dao.UserMapper"></mapper>
</mappers>
</configuration>
9:在userMapper接口处写访问数据库的增删改查方法,方便userMapper.xml调用。(注意:接口和xml文件的名字一定要一样)
public interface UserMapper {
    //查询所有用户
    List<User> seleteAll();
    //根据Id查找用户
    User selectById(int id);
   //增加用户
    int addUser(User user);
//删除用户
    int deleteById(int id);
// 更新用户
    int update(User user);
}
10:在userMapper中写下相应的增删改查语句。
<?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.ztb.dao.UserMapper">
<select id="seleteAll" resultType="com.ztb.pojo.User">
select * from mybatis.user
</select>
<select id="selectById" resultType="com.ztb.pojo.User" parameterType="int">
select * from mybatis.user where id= #{id}
</select>
<insert id="addUser" parameterType="com.ztb.pojo.User">
insert into mybatis.user (id,name,pwd) values (#{id},#{name},#{pwd})
</insert>
<delete id="deleteById" parameterType="int">
delete from mybatis.user where id=#{id}
</delete>
<update id="update" parameterType="com.ztb.pojo.User">
update mybatis.user set name=#{name},pwd=#{pwd} where id=#{id};
</update>
</mapper>
11:至此,一切准备工作完毕,下面开始测试增删改查
12:在test文件下新建测试类:
public class Test1 {
    SqlSession sqlSession=null;
    @Before
    public void Before1() throws IOException {
        InputStream inputStream = Resources.getResourceAsStream("mybaits.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        sqlSession = sqlSessionFactory.openSession();
    }
    @After
    public void after(){
        sqlSession.close();
    }
    @Test
    public void test11() throws IOException {
        UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
        List<User> users = userMapper.seleteAll();
        for (User user : users) {
            System.out.println(user);
        }
    }
    @Test
    public void test12(){
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User user = mapper.selectById(2);
        System.out.println(user);
    }
    @Test
    public void test13(){
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        int i = mapper.addUser(new User(8,"张三", "123456"));
        sqlSession.commit();
        System.out.println(i);
    }
    @Test
    public void test14(){
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        int i = mapper.deleteById(8);
        sqlSession.commit();
        System.out.println(i);
    }
    @Test
    public void test15(){
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        int i = mapper.update(new User(0,"张三","111111"));
        sqlSession.commit();
        System.out.println(i);
    }
}
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号