昨天和导师联系了一下准备进实验室接触实际项目,所以现在要自学Java EE的很多东西。今天刚看了mybatis入门,感觉是学到东西的,来记录一下入门知识。
- 数据库准备
第一个mybatis项目
- 项目结构
- - pom.xml:添加两个依赖,一个是mysql-connector-java,一个是mybatis:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.bytedance</groupId>
<artifactId>mybatis1</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.17</version>
</dependency>
</dependencies>
</project>
- 创建domin包和实体类:
package domin;
public class User {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
'}';
}
}
- 创建dao包和UserDao接口:
package dao;
import domin.User;
import java.util.List;
public interface UserDao {
public List<User> getUser();
public boolean insertUser(String Name);
}
- 在resource包下面创建UesrMapper.xml并实现UserMapper的函数
- 返回list在resultType里面要写上list里面的元素类型
(注意namespace要写UserMapper.java的路径,表示将两者实现映射):
<?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="dao.UserDao">
<select id="getUser" resultType="domin.User">
select * from hahaha
</select>
<insert id="insertUser" parameterType="string">
insert into hahaha(name) values (#{Name})
</insert>
</mapper>
- 创建conf.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="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/wxwfirst?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC" />
<property name="username" value="wxwmd" />
<property name="password" value="w2000x0322w" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="UserMapper.xml"/>
</mappers>
</configuration>
至此业务逻辑就算写好了,开始写测试类:
import domin.User;
import dao.UserDao;
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;
import java.util.List;
public class UserTest {
public static void main(String arg0s[]) throws IOException {
InputStream is = Resources.getResourceAsStream("conf.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
SqlSession session = sessionFactory.openSession();
UserDao mapper = session.getMapper(UserDao.class);
mapper.insertUser("xmd");
List<User> user = mapper.getUser();
System.out.println(user);
}
}
执行结果: