文章目录
- 新建数据库
- 新建项目,并导入jar包
- 添加配置文件conf.xml
- 定义实体类
- 定义操作表user的sql的映射文件 userMapper.xml
- 注册:将mapper.xml文件注册到conf.xml配置文件中
- 一共6步,这个只是测试类,这个不算
新建数据库
命名是 随便,因为这里是 数据库连接名
create database mybatis;
use mybatis;
CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20), age INT);INSERT INTO users(NAME, age) VALUES('Tom', 12);
INSERT INTO users(NAME, age) VALUES('Jack', 11);
一行一行输入
在这里我的mybatis这个数据库是建在了test这个连接里
新建项目,并导入jar包
新建Javaproject
新建lib文件夹
添加配置文件conf.xml
cofi.xml这个文件里只需要改三行
1. 数据库的名字
2.用户名 和 密码
.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" />//事务管理,类型是jdbc
<dataSource type="POOLED">//数据源 连接池->提高访问速度
<property name="driver" value="com.mysql.jdbc.Driver" />//加载数据库驱动
//jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC 数据库是多少以上
<property name="url" value="jdbc:mysql://localhost:3306/mybatis" />//访问数据库的路径,最后(mybatis)是访问数据库名字
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
</configuration>
修改后的结果是:
格式化代码
定义实体类
新建package,class
package com.zhang.mybatis.sy1;
public class User {
//三个变量要和数据库建的User表 字段名相同
private int id;
private String name;
private int age;
//get,set方法
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//toString方法
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}
定义操作表user的sql的映射文件 userMapper.xml
<mapper></mapper>这个文件是要自己写的
sql语句写在.xml文件中,实现了java和完全分离
namespace 类名
<?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.zhang.mybatis.sy1.userMapper">//namespace 命名空间,具有唯一性,类名!!!
<select id="getUser" parameterType="int" resultType="com.zhang.mybatis.sy1.User">//这个id也是唯一的
//parameterType 是下面输入变量的类型(这里是id的类型)
//resultType 是返回的结果类型(这里是*,user的全类名),检查是否正确,按住ctrl变为超链接,点击可跳转到实体类
//第一个id是字段名,#是占位符,{这个id是变量}
select * from users where id=#{id}
</select>
</mapper>
注册:将mapper.xml文件注册到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.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
<property name="username" value="root" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/zhang/mybatis/sy1/userMapper.xml" /> //先指明路径,从com开始,全路径名
</mappers>
</configuration>
此时关于mybatis的配置步骤已全部完成 。
一共6步,这个只是测试类,这个不算
这四步是固定的
记得先写main方法
String resource = "conf.xml";
Reader reader = Resources.getResourceAsReader(resource);
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
SqlSession session = sessionFactory.openSession();
新建测试类,看是否成功
先复制进去
public class Test {
public static void main(String[] args) throws IOException {
String resource = "conf.xml";
//加载 mybatis 的配置文件(它也加载关联的映射文件)
Reader reader = Resources.getResourceAsReader(resource);
//构建 sqlSession 的工厂
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
//创建能执行映射文件中 sql 的 sqlSession
SqlSession session = sessionFactory.openSession();
//映射 sql 的标识字符串
String statement = "com.rjxy.mybatis.bean.userMapper"+".selectUser";
//执行查询返回一个唯一 user 对象的 sql
User user = session.selectOne(statement, 1);
System.out.println(user);
}
}
变量1,传给了mapper里面 id=#{id},相当于 id=#{1};
都保存以后运行,这个就是数据库里id为1,的数据