mybatis开发入门
mybatis架包下载地址:https://mybatis.org/mybatis-3/index.html
简单的入门练习
项目布局
实体类
User.java
package com.hp.mybatis.bean;
import java.sql.Date;
public class User {
private Integer id;
private String username;
private Date birthday;
private String sex;
private String address;
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", birthday=" + birthday +
", sex='" + sex + '\'' +
", 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;
}
}
接口类
UserMapper.java
package com.hp.mybatis.mapper;
import com.hp.mybatis.bean.User;
import java.util.List;
/**
* 持久层的接口类 userMapper 也就是咱们经常说的 userDao
*/
public interface UserMapper {
/**
* 查询所有数据
*
* @return
*/
List<User> findAll();
}
mybatis的XML配置文件
mybatis.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>
<!--配置环境--> <!--default 默认选中的配置(必须于其中environment标签中的 id值一致)-->
<environments default="development">
<!--环境中定义了 ,要访问的连接池 和 事务管理类型-->
<environment id="development">
<!--配置事务管理-->
<transactionManager type="JDBC"></transactionManager>
<!--配置数据库连接池-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql:///MyDB"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!--配置映射文件 (就是实体类 和 数据库建立关联的xml文件)-->
<mappers>
<mapper resource="mapper/usermapper.xml"/>
</mappers>
</configuration>
映射SQL语句配置
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">
<!--该文件主要用于编写,SQL语句-->
<!--namespace: 命名空间,用于指定当前mapper文件中操作的SQL 属于哪一个接口类下面的方法-->
<mapper namespace="com.hp.mybatis.mapper.UserMapper">
<!--
id 就是命名空间指定类的方法名
resultType 就是 命名空间中指定类的方法的返回值类型(全限定名)
尽管findAll返回的是List<User> 但实质上,集合内部包含内容就是User
-->
<select id="findAll" resultType="com.hp.mybatis.bean.User">
select * from `user`
</select>
</mapper>
测试
UserTest.java
package com.hp.mybatis.test;
import com.hp.mybatis.bean.User;
import com.hp.mybatis.mapper.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 org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
/**
* 测试类
*/
public class UserTest {
@Test
public void test1() {
InputStream is = null;
try {
//读取核心配置 mybatis.xml 得到输入流
is = Resources.getResourceAsStream("mybatis.xml");
} catch (IOException e) {
e.printStackTrace();
}
//获取 工厂构建类
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
//获取sqlSessionFactory 对象,需依赖SqlSessionFactoryBuilder
SqlSessionFactory factory = builder.build(is);
//获取 sqlSession对象,(等同于jdbc的 Connection连接对象)
SqlSession sqlSession = factory.openSession();
//注意 UserMapper 也就是userDao 接口类
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
//调用 UserMapper 接口类中findAll方法
List<User> userList = userMapper.findAll();
//遍历
System.out.println("所有数据:");
for (User userLists : userList) {
System.out.println(userLists);
}
}
}
数据库
-- 创建一个MyDB数据库
create database MyDB;
use mydb;
-- 创建user表
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 AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
-- 插入数据
insert into `user`(username,birthday,sex,address)values('张三','2020/2/18','男','中国');
-- 查询所有数据
select * from `user`;
来源:CSDN
作者:Xiao full
链接:https://blog.csdn.net/qq_45742386/article/details/104372085