准备工作
这里我用最新版的mybatis-9,mysql-connector-java-0.2jar。
搭建开发环境
创建mysql数据库和表
数据库名:spring_db;表名:student
CREATE TABLE `student` (
`id` int(11) NOT NULL ,
`name` varchar(255) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
创建maven工程
在空项目下,新建module
因为我们只是操作数据库,没有啥web应用,创建普通javase项目quickstart即可。
小提示:设置为自动导入依赖模式,等待项目构建。
添加依赖
org.mybatis
mybatis
3.5.9
mysql
mysql-connector-java
8.0.22
注意版本对应关系。
如果依赖下载失败,试着改用手工导入方式。
编写实体类
编写之前先把默认生成的App类删除。
包名:orexampldomain;类名:Student
// 类名推荐和表名一样,方便记忆
public class Student {
//定义属性(要求:属性名与列名相同)
private Integer id;
private String name;
private String email;
private Integer age;
// ......
// 以下省略 set ,get , toString方法
}
编写Dao接口
这是持久层的dao接口文件,定义了操作数据库的相关方法。
包名:orexampldao;接口名:StudentDao
public interface StudentDao {
// 查询student表中所有数据
public List selectStudents();
/**
增、删、改的接口同理
*/
}
编写MappingSQL映射文件
里面是写sql语句的,一般一个表配一个映射文件,mybatis会自动执行。
点击New-》File,创建StudentDao.xml,内容如下:
说明:
指定约束文件。mybatis-3-mapper.dtd是约束文件,作用是限制和检查当前文件中出现的标签、属性是否符合mybatis配置要求。mapper:当前文件的根标签。namespace:命名空间,有唯一值的。可以自定义,推荐使用dao接口的全类名。
创建主配置文件
其中name='driver'对应值有两种,如果你的mysql驱动版本是x,那么value值就应该是“comysqjdbDriver”,而上面“comysqcjdbDriver”是mysqlx驱动的写法。
右键文件,选择CopyPat..。
注:poxml添加maven插件:
创建测试类
包名:orexample;类名:MyBatisTest
public static void main(String[] args) throws IOException {
//1.mybatis 主配置文件名称
String config = 'mybatis.xml';
//2.读取配置文件
InputStream in = Resources.getResourceAsStream(config);
//3.创建 SqlSessionFactoryBuilder 对象
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
//4.创建SqlSessionFactory 对象
SqlSessionFactory factory = builder.build(in);
//5.获取 SqlSession 对象, 执行sql语句
SqlSession session = factory.openSession();
//6.指定要执行的sql语句标识(由sql映射文件中的namespace+ '.' +id构成)
String sqlId = 'org.example.dao.StudentDao' + '.' + 'selectStudents';
//7.通过sqlId,执行sql语句
List studentList = session.selectList(sqlId);
//8.循环输出查询结果
studentList.forEach( student -> System.out.println(student));
//9.关闭 SqlSession,释放资源
session.close();
}
Tips:如果lambda表达式地方抛红,检查java编译版本是否过低,调为java8版本。如果报数据库时区问题,则在主配置文件,url值后添加“?erverTimezone=UTC”即可。
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点