MyBatis 技术内幕 - MyBatis 介绍 - MyBatis 示例
准备工作
- 开发工具:IDEA
- 依赖JAR:mybatis jar包 v3.4.6 官方版
- 库表创建:
mysql> use test ;
Database changed
mysql> show tables ;
+-------------------+
| Tables_in_test |
+-------------------+
| db_hd_group_goods |
| test |
| user |
+-------------------+
3 rows in set
mysql> show create table user ;
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| user | CREATE TABLE `user` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 |
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set
mysql> select * from user ;
+----+-----------+-----------+---------------------+
| id | user_name | pass_word | create_date |
+----+-----------+-----------+---------------------+
| 1 | guo | 111 | 2018-05-20 09:55:47 |
| 2 | root | aaa | 2018-05-20 09:55:50 |
| 3 | 11111 | 22222 | 2018-05-20 09:55:51 |
| 4 | 1 | 1 | 2018-05-20 09:55:56 |
| 5 | a | b | 2018-05-20 09:55:54 |
| 7 | a | b | 2018-05-20 09:56:58 |
+----+-----------+-----------+---------------------+
6 rows in set
DEMO
- 新建项目:mybatis_test
- IDEA --> File --> new --> project --> mybatis_test
- IDEA --> File --> Project Structure --> modules --> dependencies --> + --> mybatis_3.4.6.jar
- mybatis-config.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>
<!-- development:开发模式 work:工作模式 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/test" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
<!-- 配置映射配置文件的位置-->
<mappers>
<mapper resource="userMapper.xml" />
</mappers>
</configuration>
- model
public class User {
private Integer id;
private String userName;
private String passWord;
private Date createDate ;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public void setUserName(String userName){
this.userName = userName ;
}
public String getUserName(){
return userName;
}
public void setPassWord(String password){
this.passWord = password;
}
public String getPassWord(){
return passWord;
}
public void setCreateDate(Date createDate){
this.createDate = createDate;
}
public Date getCreateDate(){
return createDate;
}
}
- mapper.java
public interface UserMapper {
User findUserById(int id);
void addUser(User user);
List<User> getAllUsers();
}
- mapper.xml
<?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.mybatis.mapper.UserMapper">
<resultMap id="resultMap" type="com.mybatis.model.User">
<id column="id" property="id" jdbcType="INTEGER"></id>
<result column="user_name" property="userName" jdbcType="VARCHAR"></result>
<result column="pass_word" property="passWord" jdbcType="VARCHAR"></result>
<result column="create_date" property="createDate" jdbcType="TIMESTAMP"></result>
</resultMap>
<sql id="Base_Column_List">
id,user_name,pass_word,create_date
</sql>
<!--根据ID获取对应的值 -->
<select id="findUserById" parameterType="int" resultMap="resultMap">
select
<include refid="Base_Column_List"/>
from user where id = #{id}
</select>
<select id="selectList" resultMap="resultMap">
select * from user
</select>
<insert id="addUser" parameterType="com.mybatis.model.User">
insert into user(username,password) values(#{username},#{password})
</insert>
</mapper>
- test
public class SqlSessionFactoryTest {
public static void main(String[] args) throws IOException {
String mybatisConfigurePath = "mybatis_configure.xml" ;
InputStream inputStream = Resources.getResourceAsStream(mybatisConfigurePath);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
User user = sqlSession.selectOne("com.mybatis.mapper.UserMapper.findUserById", 1);
System.out.println(user.getUserName());
sqlSession.close();
}
}
- 项目结构
![mybatis demo 项目结构](https://i-blog.csdnimg.cn/blog_migrate/4aacaa9be21c91365f35bb0e81af333e.png)