eclipse中搭建Mybatis环境
程序员文章站
2022-07-26 20:42:58
需求开发步骤准备Mysql数据库,创建表结构,添加一些数据创建Java工程,导入开发的jar包编写实体类,和表结构对应,用来进行数据封装编写映射配置文件(编写sql语句)编写主配置文件(配置数据库连接相关的信息),并加载映射配置文件编写入门的代码(MyBatis提供的API)准备Mysql数据库,创建表结构CREATE TABLE `user` ( `id` int(11) NOT NULL auto_increment, `username` varchar(32) NOT N...
需求
使用Mybatis从Mysql数据库中查询出数据
开发步骤
- 准备Mysql数据库,创建表结构,添加一些数据
- 创建Java工程,导入开发的jar包
- 编写实体类,和表结构对应,用来进行数据封装
- 编写映射配置文件(编写sql语句)
- 编写主配置文件(配置数据库连接相关的信息),并加载映射配置文件
- 编写入门的代码(MyBatis提供的API)
准备Mysql数据库,创建表结构
CREATE TABLE `user` (
`id` int(11) NOT NULL auto_increment,
`username` varchar(32) NOT NULL COMMENT '用户名称',
`birthday` datetime default NULL COMMENT '生日',
`sex` char(1) default NULL COMMENT '性别',
`address` varchar(256) default NULL COMMENT '地址',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into `user`(`id`,`username`,`birthday`,`sex`,`address`) values (1,'老二王','2018-02-27 17:47:08','男','北京'),
(2,'小王','2018-03-02 15:09:37','女','北京金燕龙'),
(3,'小二王','2018-03-04 11:34:34','女','北京金燕龙'),
(4,'小李','2018-03-04 12:04:06','男','北京金燕龙'),
(5,'老王','2018-03-07 17:37:26','男','北京'),
(6,'小马宝莉','2018-03-08 11:44:00','女','北京修正');
创建Maven工程,导入jar包
然后打开pom.xml文件,进行坐标配置
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- mybatis的依赖,导入mybatis的jar包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<!-- 导入数据库连接的jar包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<!-- 导入日志的jar包 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
并把log4j.properties文件复制到cn.tx.resources包下
编写实体类
在src/main/java下新建一个cn.tx.domain包,然后创建实体类User,并实现Serializable接口。
package cn.tx.domain;
import java.io.Serializable;
import java.util.Date;
//用户实体类
public class User implements Serializable{
private Integer id;
private String username;
private Date birthday;
private String sex;
private String address;
public User() {
super();
// TODO Auto-generated constructor stub
}
public User(String username, Date birthday, String sex, String address) {
super();
this.username = username;
this.birthday = birthday;
this.sex = sex;
this.address = address;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", birthday=" + birthday + ", sex=" + sex + ", address="
+ address + "]";
}
}
编写映射配置文件
在src/main/java下新建一个cn.tx.dao包,然后创建实体类IUserDao接口。
package cn.tx.dao;
import java.util.List;
import cn.tx.domain.User;
//用户的持久层操作,用户映射接口
public interface IUserDao {
//查询所有的数据
public List<User> findAll();
}
在src/main/resource下创建cn.tx.dao包,在包下创建IUserDao.xml文件
映射配置文件IUserDao.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">
<!-- namespace属性 名称空间 java包结构一个概念-->
<!-- 用来区分Dao接口,推荐编写Dao接口的全限定路径 -->
<!-- cn.tx.dao.IUserDao.findAll -->
<mapper namespace="cn.tx.dao.IUserDao">
<!-- 查询所有 -->
<!-- id必须于IUserDao.java里的方法名一样 -->
<!-- resultType属性,方法返回值类型,全限定路径(包名+类名)-->
<select id="findAll" resultType="cn.tx.domain.User">
<!-- ';'可以省略.编写对应的sql语句 -->
select * from user;
</select>
编写主配置文件
在src/main/resource下创建SqlMapConfig.xml文件
SqlMapConfig.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">
<!-- mybatis的主配置文件 -->
<configuration>
<!-- 配置环境 -->
<environments default="mysql">
<!-- 配置mysql的环境 -->
<environment id="mysql">
<!-- 配置事务的类型 -->
<transactionManager type="JDBC"></transactionManager>
<!-- 配置(数据源)连接池 -->
<dataSource type="POOLED">
<!-- 配置连接数据库的4个基本信息 -->
<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>
<!-- 指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件 -->
<mappers>
<mapper resource="cn/tx/dao/IUserDao.xml"/>
</mappers>
</configuration>
注意:
经过以上步骤,Mybatis环境就搭建好了,接下来可以写一个测试类
编写入门的代码
创建测试类
MybatisTest类
@Test
public void testfindAll() throws Exception{
//1.读取配置文件
InputStream inputstream = Resources.getResourceAsStream("SqlMapConfig.xml");
//2.创建SqlSessionFactory工厂
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputstream);
//3.使用工厂生产SqlSession对象
SqlSession session = factory.openSession();
//4.使用SqlSession创建Dao接口的代理对象
IUserDao userdao = session.getMapper(IUserDao.class);
//5.使用代理对象执行方法
List<User> users = userdao.findAll();
for(User user:users) {
System.out.println(user);
}
//6.释放资源
session.close();
inputstream.close();
本文地址:https://blog.csdn.net/m0_46488211/article/details/107374872
上一篇: 个人博客园样式、背景及细节美化过程
下一篇: python中Apriori算法实现讲解
推荐阅读