第一个mybatis项目
一、数据库环境搭建
1 2 3 4 5 6 7 8 9 10 11 12
| CREATE DATABASE `mybatis`; use `mybatis`; create TABLE `saxon`( `id` INT(10) not null , `user` VARCHAR(20) not null, `pwd` VARCHAR(10) not null DEFAULT "saxon", PRIMARY KEY(`id`) )ENGINE=INNODB,CHARSET=utf8;
use `mybatis`; INSERT INTO `saxon`(`id`,`user`,`pwd`) VALUES(1,'saxon','1234567')
|
二、建立一个项目
1.配置文件:
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 configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql:localhost:3306/smbms?useUnicode=true&characterEncoding=utf8&useSSL=true"/> <property name="username" value="root"/> <property name="password" value="1234567"/> </dataSource> </environment> </environments> <mappers> <mapper resource="org/mybatis/example/BlogMapper.xml"/> </mappers> </configuration>
|
三、编写工具类
UserMapping:
1 2 3 4 5 6 7 8 9
| <?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.saxon.Dao.UserDao"> <select id="getUserList" resultType="com.saxon.pojo.User"> select * from mybatis.saxon </select> </mapper>
|
工具类:
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
| package com.saxon.Util;
import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException; import java.io.InputStream;
public class MybatisUnit { private static SqlSessionFactory sqlSessionFactory;
static { String resource = "org/mybatis/example/mybatis-config.xml"; InputStream inputStream = null; try { inputStream = Resources.getResourceAsStream (resource); } catch (IOException e) { e.printStackTrace (); } sqlSessionFactory = new SqlSessionFactoryBuilder ().build (inputStream); }
public static SqlSession getSqlSession(){ return sqlSessionFactory.openSession (); } }
|
四、编写一个实体类
pojo:
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
| package com.saxon.pojo;
public class User { private int id; private String user; private String pwd;
public User () { }
public User (int id, String user, String pwd) { this.id = id; this.user = user; this.pwd = pwd; }
public int getId () { return id; }
public void setId (int id) { this.id = id; }
public String getUser () { return user; }
public void setUser (String user) { this.user = user; }
public String getPwd () { return pwd; }
public void setPwd (String pwd) { this.pwd = pwd; } }
|
五、测试
测试代码;
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
| package com.saxon.Dao;
import com.saxon.Util.MybatisUnit; import com.saxon.pojo.User; import org.apache.ibatis.session.SqlSession; import org.junit.Test;
import java.util.List;
public class UserDaoTest { @Test public void test () { SqlSession sqlSession = MybatisUnit.getSqlSession (); UserDao mapper = sqlSession.getMapper (UserDao.class); List<User> userList = mapper.getUserList (); for (User user : userList) { System.out.println (user); } sqlSession.close (); } }
|
==特别要注意的是,不要在配置文件,关键的xml里面写中文注释,会出现 2 字节的 UTF-8 序列的字节 2 无效的错误,,原因在编码,不清楚就不弄了==