mybatis官方文档
mybatis官方文档地址:mybatis – MyBatis 3 | 简介
一、创建maven项目
2、打开idea点击 Create new project
2、选择maven,点击next
3、输入项目名,点击Finish
4、删除该工程的src,使其成为父工程
二、创建数据库
1、创建数据库字符集编码改为utf8(例:study),创建数据表,代码方式:(因为管理软件和数据库不同,粘贴复制可能有错,推荐自己手打)
create database 'study'
use 'study'
create table 'user'(
'id' int (20) not null primary key,
'name' varchar(30) defaukt null,
'pwd' varchar(30) default null
)default charset=utf2;
也可以手动方式,数据如下:
2、向表中添加数据
代码方式:(因为管理软件和数据库不同,粘贴复制可能有错,推荐自己手打)
insert into 'user' ('id','name','pwd')values
(1,'fzx','010101'),
(2,'zs','010101'),
(3,'ls','010101')
也可以手动方式,数据如下
三、编写程序
1、双击pom.xml,导入依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--父工程-->
<groupId>org.example</groupId>
<artifactId>com.kuang_shen</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<!--导入依赖-->
<dependencies>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
<!--mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
<!--junit-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>
</roject>
2、按照以下步骤创建项目
此时刚才的pom.xml中就会出现子工程
<modules>
<module>mybatis-01</module>
</modules>
3、创建包,结构如下
4、编写mybatis的核心配置文件(mybatis官方文档中有详细介绍:mybatis – MyBatis 3 | 入门)
(1)在utils中创建工具类MybatisUtils,用来获取sqlsession,代码如下
package com.fan.utils;
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;
//sqlSessionFactory --> sqlSession
public class MybatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static {
try {
//使用mybatis的第一步:获取sqlSessionFactory对象
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
//既然有了 SqlSessionFactory,顾名思义,我们可以从中获得 SqlSession 的实例。
// SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession();
}
}
2、在resources中编写mybatis的核心配置文件mybatis-config.xml
url的values:jdbc:mysql://localhost:3306/study?characterEncoding=utf8" 中study为自己的数据库名字,username和password的values为自己数据库的用户名和密码
<?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核心配置文件-->
<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/study?characterEncoding=utf8"/>
<property name="username" value="root"/>
<property name="password" value=""/>
</dataSource>
</environment>
</environments>
<!-- 每一个Mapper.xml都需要在mybatis核心配置文件中注册 -->
<mappers>
<mapper resource="UserMapper.xml"/>
</mappers>
</configuration>
3、在pojo中编写实体类User
package com.fan.pojo;
//实体类
public class User {
private int id;
private String name;
private String pwd;
public User() {
}
public User(int id, String name, String pwd) {
this.id = id;
this.name = name;
this.pwd = pwd;
}
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 String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", pwd='" + pwd + '\'' +
'}';
}
}
4、在dao包里创建接口UserMapper,用来声明方法
package com.fan.dao;
import com.fan.pojo.User;
import java.util.List;
public interface UserMapper {
//获取全部用户
List<User> getUserList();
//根据id查询用户
User getUserById(int id);
//插入用户
int addUser(User user);
//修改用户
int updateUser(User user);
//删除一个用户
int deleteUser(int id);
}
5、在test文件中编写测试类UserDaoTest,用来调用刚刚编写的方法,进行测试代码
package com.fan.dao;
import com.fan.pojo.User;
import com.fan.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.io.IOError;
import java.io.IOException;
import java.util.List;
public class UserDaoTest {
@Test
public void test(){
//第一步:获取sqlSession对象
SqlSession sqlSession= MybatisUtils.getSqlSession();
//第二步:执行SQL
//方式一:getMapper
UserMapper userDao=sqlSession.getMapper(UserMapper.class);
List<User> userList=userDao.getUserList();
//方式二
// List<User> userlist= sqlSession.selectList("com.fan.dao.UserDao.getUserList");
for (User user : userList) {
System.out.println(user);
}
//第三步:关闭sqlSession
sqlSession.close();
}
@Test
public void getUserById() throws IOException{
SqlSession sqlSession= MybatisUtils.getSqlSession();
UserMapper mapper= sqlSession.getMapper(UserMapper.class);
User user= mapper.getUserById(1);
System.out.println(user);
sqlSession.close();
}
@Test
public void addUser() throws IOException {
SqlSession sqlSession= MybatisUtils.getSqlSession();
UserMapper mapper= sqlSession.getMapper(UserMapper.class);
int res=mapper.addUser(new User(4,"ww","147258"));
if (res>0){
System.out.println("插入成功!");
}
//提交事务
sqlSession.commit();
sqlSession.close();
}
@Test
public void updateUser(){
SqlSession sqlSession= MybatisUtils.getSqlSession();
UserMapper mapper= sqlSession.getMapper(UserMapper.class);
int res=mapper.updateUser(new User(4,"zl","101010"));
if (res>0){
System.out.println("修改成功!");
}
sqlSession.commit();
sqlSession.close();
}
@Test
public void deleteUser(){
SqlSession sqlSession= MybatisUtils.getSqlSession();
UserMapper mapper= sqlSession.getMapper(UserMapper.class);
int res=mapper.deleteUser(4);
if (res>0){
System.out.println("删除成功!");
}
sqlSession.commit();
sqlSession.close();
}
}
先赞后看,养成习惯q(≧▽≦q)
分享总结,如有侵权,请联系删除