一.创建Maven项目
1.选择 File--> New--> Project
2.选择Maven-->选择自己的JDK版本--> Next
二.Maven基础配置
.创建好Maven项目后,打开Maven项目中的pom.xml文件,加载所需要的jar包;
2.在pom.xml文件中找到 </properties>结束标签,在下一行添加所需要的依赖,如下:
<dependencies>
<!-- 测试包 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- mybatis核心包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
<!-- MysqL驱动包 -->
<!-- https://mvnrepository.com/artifact/MysqL/mysql-connector-java -->
<!-- https://mvnrepository.com/artifact/MysqL/mysql-connector-java -->
<dependency>
<groupId>MysqL</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
</dependencies>
三.创建数据库
1.创建数据库;
2.使用当前数据库(为了避免创建的数据表不在指定的数据库中);
3.创建数据库。
注:创建完成后注意检查是否成功。
四.创建实体类与接口
数据库建好后回到Maven项目中,依次打开 src / main,然后右键 java新建一个包(package),再在包下面新建一个包(package),在当前包中新建一个User实体类。
package com.demo.mybatis;
public class User {
private Integer id;
private String name;
private String password;
public User() {
super();
}
public User(Integer id, String name, String password) {
this.id = id;
this.name = name;
this.password = password;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getpassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", password='" + password + '\'' +
'}';
}
}
2、在 java文件夹下第一层级的包中新建另一个包,再在当前包中新建一个接口(UserMapper)
package com.demo.sss;
import com.demo.mybatis.User;
import java.util.List;
public interface UserMapper {
//查询所有信息
public List<User> queryAll();
//添加
public void addUser(User user);
//修改
public boolean updateUser(User user);
//根据id删除信息
public void deleteUserById(int id);
}
五.文件配置
1.数据库连接
依次打开 src / main,然后右键 resources新建一个properties文件(dbconfig.properties);
jdbc.driver = com.MysqL.jdbc.Driver
jdbc.url = jdbc:MysqL://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
jdbc.username = root
jdbc.password =x5
2.mybatis的xml文件配置
右键 resources新建一个xml文件(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>
<!--
mybatis可以使用properties来引入外部properties配置文件的内容
resource:引入类路径下的资源
-->
<properties resource="dbconfig.properties">
</properties>
<!-- environments:环境,mybatis可以设置多种环境;default指定使用某种环境,可以达到快速切换环境
environment:配置一个具体的环境信息;必须有两个标签;id代表当前环境的唯一标识
type:事务管理器的类型;JDBC(JdbcTransactionFactory)MANAGED(ManagedTransactionFactory)
自定义事务管理器:实现TransactionFactory接口,type指定为全类名
dataSource:数据源
type:数据源UNPOOLED(UnpooledDataSourceFactory)
POOLED(PooledDataSourceFactory)
JNDI(JndiDataSourceFactory)
自定义数据源:实现DataSourceFactory接口,type是全类名
-->
<environments default="db_MysqL">
<environment id="db_MysqL">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!-- 数据库连接相关配置 ,这里动态获取dbconfig.properties文件中的内容-->
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!-- databaseIdProvider:支持多数据库厂商的;
type="DB_vendOR":vendorDatabaseIdProvider
作用就是得到数据库厂商的标识(驱动getDatabaseIDProductName()),mybatis就能根据数据库厂商标识来执行不同的sql;
-->
<mappers>
<mapper resource="UserMapper.xml"/> <!-- sql映射文件路径 -->
</mappers>
</configuration>
3.sql映射文件的配置
右键 resources新建一个xml文件(UserMapper.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.demo.sss.UserMapper">
<!--
namespace :名称空间;指定接口的全类名
id:唯一标识(建议用接口中对应的方法名命名)
resultType:返回值类型
-->
<select id="queryAll" resultType="com.demo.mybatis.User">
select * from tb_user
</select>
<!--
自增主键值的获取,mybatis也是利用statement.getGeneratedKeys();
useGeneratedKeys="true";使用自增获取主键值策略
keyProperty:指定对应的主键值,也就是mybatis获取到主键值以后,将这个值封装给javaBean的哪个属性
-->
<insert id="addUser" parameterType="com.demo.mybatis.User" >
insert into tb_user(id,name,password) values(#{id},#{name},#{password})
</insert>
<!--根据name修改password的值-->
<update id="updateUser">
update tb_user set password=#{password} where name=#{name}
</update>
<delete id="deleteUserById">
delete from tb_user where id=#{id}
</delete>
</mapper>
整体结构如下:
六.测试
import com.demo.mybatis.User;
import com.demo.sss.UserMapper;
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 Test {
public sqlSessionFactory getsqlSessionFactory() throws IOException {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsstream(resource);
return new sqlSessionFactoryBuilder().build(inputStream);
}
@org.junit.Test
public void demo() throws IOException {
sqlSessionFactory sessionFactory = getsqlSessionFactory();
sqlSession openSession = sessionFactory.openSession();
try {
//添加
// UserMapper mapper = openSession.getMapper(UserMapper.class);
// User user = new User(7, "To2m", "123");
// mapper.addUser(user);
// System.out.println(user);
// openSession.commit(); //执行增删改是需手动提交数据
//修改
// UserMapper mapper = openSession.getMapper(UserMapper.class);
// User user = new User(null, "To2m", "2122");
// mapper.updateUser(user);
// openSession.commit(); //执行增删改是需手动提交数据
//查询
// List<User> list = openSession.selectList("com.demo.sss.UserMapper.queryAll");
// for (User user:list) {
// System.out.println(user);
// }
//删除
UserMapper mapper = openSession.getMapper(UserMapper.class);
mapper.deleteUserById(54);
openSession.commit(); //执行增删改是需手动提交数据
} finally {
openSession.close();
}
}
}
完成。