版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lingyiwin/article/details/84000509
Mybatis学习笔记03
搭建第一个Mybatis项目
创建DTO
package www.mybatis01.beans;
public class User {
private Integer userId;
private String userName;
private int age;
//快捷键Alt+Shift+S+C
public User() {
super();
}
//快捷键Alt+Shift+S+O
public User(String userName, int age) {
super();
this.userName = userName;
this.age = age;
}
//快捷键Alt+Shift+S+R
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//快捷键Alt+Shift+S+S
@Override
public String toString() {
return "User [userId=" + userId + ", userName=" + userName + ", age=" + age + "]";
}
}
创建DTO接口
package www.mybatis01.dao;
import www.mybatis01.beans.User;
public interface IUserDao {
public void addUser(User user);
public int queryUser(int userID);
}
创建DTO接口实现
import java.io.IOException;
import java.io.InputStream;
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 www.mybatis01.beans.User;
import www.mybatis01.dao.IUserDao;
import www.mybatis01.utils.mybatisdao.MybatisDao;
public class UserMyBatisDao implements IUserDao {
@Override
public void addUser(User user) {
try {
//1:加载配置文件
InputStream input= Resources.getResourceAsStream("mybatis.xml");
//2:创建SqlSessionFactory对象
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(input);
//3:创建SqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
//4:相关操作
sqlSession.insert("user.addUser", user);
sqlSession.commit();
sqlSession.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Test测试
package www.mybatis01.test;
import org.junit.Test;
import org.junit.Before;
import www.mybatis01.beans.User;
import www.mybatis01.dao.IUserDao;
import www.mybatis01.dao.impl.UserMyBatisDao;
public class UserTest {
private IUserDao userDao;
@Before
public void Before() {
userDao =new UserMyBatisDao();
}
@Test
public void testAdd() {
User user = new User("小四",18);
userDao.addUser(user);
}
}
MySQL数据库文件
CREATE DATABASE `mysql`;
USE `mysql`;
DROP TABLE IF EXISTS `tb_user`;
CREATE TABLE `tb_user` (
`userId` bigint(5) NOT NULL,
`userName` varchar(50) DEFAULT NULL,
`age` tinyint(3) DEFAULT NULL,
`createdBy` varchar(50) DEFAULT NULL,
`createdDate` timestamp NULL DEFAULT NULL,
`updatedBy` varchar(50) DEFAULT NULL,
`updatedDate` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`userId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into `tb_user`(`userId`,`userName`,`age`,`createdBy`,`createdDate`,`updatedBy`,`updatedDate`) values
(1,'张三',20,NULL,NULL,NULL,NULL),
(2,'李四',23,NULL,NULL,NULL,NULL),
(3,'王五',26,NULL,NULL,NULL,NULL);
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="user">
<insert id="addUser" parameterType="www.mybatis01.beans.User">
insert into tb_user(userName,age)
values(#{userName},#{age})
</insert>
</mapper>
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>
<!-- 配置运行环境 -->
<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver" />
<property name="url" value="jdbc:mysql://127.0.0.1:3306/mysql?serverTimezone=UTC" />
<property name="username" value="****" />
<property name="password" value="****" />
</dataSource>
</environment>
</environments>
<!-- 注册映射文件 -->
<mappers>
<mapper resource="www/mybatis01/dao/mapper.xml" />
</mappers>
</configuration>
配置文件注意事项
property url 省略默认内容
<property name="url" value="jdbc:mysql://127.0.0.1:3306/mysql"/>
如果数据库 地址为127.0.0.1 端口号为3306, 可以省略 jdbc:mysql:///mysq
<property name="url" value="jdbc:mysql:///mysq"/>
environments default一定要和environment 某个的Id一致 否则会报错
<!-- 配置运行环境 -->
<environments default="mysql">
<environment id="mysql">
</environment>
<environment id="oracle">
</environment>
<environment id="DB2">
</environment>
</environments>
</configuration>
报错:org.apache.ibatis.exceptions.PersistenceException:
报错:
org.apache.ibatis.exceptions.PersistenceException:
### Error updating database. Cause: java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
需要设置serverTimezone=UTC
<property name="url" value="jdbc:mysql://127.0.0.1:3306/mysql" />
改为:
<property name="url" value="jdbc:mysql://127.0.0.1:3306/mysql?serverTimezone=UTC" />
相关Jar包下载参考:
https://blog.csdn.net/lingyiwin/article/details/83870537