1. 查看环境:
(打开cmd):
java -version
mysql --version
mvn -version
确保jdk在1.8及以上(必须),mysql在5.7及以上(最好),manven在3.6及以上(最好)。不然版本过低会影响程序的执行!
2.创建数据库
create database `mybatis01`;
使用数据库
use mybatis01;
创建表格
create table `users`(
id int(20) not null primary key comment '学号',
name varchar(30) comment '姓名',
pwd varchar(30) comment '密码'
)engine=innodb default charset=utf8
插入数据:
insert into `users` values
(1,'张三','123'),
(2,'李四','12345'),
(3,'王五','4321')
显示效果如下:
既然数据库已存入数据,那我们就正式开始吧!
在XML中,加入依赖:
< dependencies>
< dependency>
< groupId> mysql</ groupId>
< artifactId> mysql-connector-java</ artifactId>
< version> 5.1.47</ version>
</ dependency>
< dependency>
< groupId> org.mybatis</ groupId>
< artifactId> mybatis</ artifactId>
< version> 3.5.4</ version>
</ dependency>
< dependency>
< groupId> junit</ groupId>
< artifactId> junit</ artifactId>
< version> 4.12</ version>
</ dependency>
</ dependencies>
< build>
< resources>
< resource>
< directory> src/main/resources</ directory>
< includes>
< include> **/*.properties</ include>
< include> **/*.xml</ include>
</ includes>
< filtering> false</ filtering>
</ resource>
< resource>
< directory> src/main/java</ directory>
< includes>
< include> **/*.properties</ include>
< include> **/*.xml</ include>
</ includes>
< filtering> false</ filtering>
</ resource>
</ resources>
</ build>
结构如下:
先建一个pojo包下的User(实体类):
package com. jin. 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 + '\'' +
'}' ;
}
}
建一个mapper包下的UserMapper(接口):
package com. jin. mapper ;
import com. jin. pojo. User ;
import java. util. List ;
public interface UserMapper {
List < User > selectUser ( ) ;
User selectByIdUser ( int id) ;
int addUser ( User user) ;
int updateUser ( User user) ;
int deleteUser ( int id) ;
}
建一个在mapper包下的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" >
< mapper namespace = " com.jin.mapper.UserMapper" >
< select id = " selectUser" resultType = " com.jin.pojo.User" >
select * from mybatis01.users
</ select>
< select id = " selectByIdUser" parameterType = " int" resultType = " com.jin.pojo.User" >
select * from mybatis01.users where id=#{id}
</ select>
< insert id = " addUser" parameterType = " com.jin.pojo.User" >
insert into mybatis01.users (id,name,pwd) value (#{id},#{name},#{pwd});
</ insert>
< update id = " updateUser" parameterType = " com.jin.pojo.User" >
update mybatis01.users set name=#{name},pwd=#{pwd} where id=#{id};
</ update>
< delete id = " deleteUser" parameterType = " int" >
delete from mybatis01.users where id=#{id}
</ delete>
</ mapper>
resources下的mybatis-config.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/mybatis01?useSSL=false& useUnicode=true& characterEncoding=UTF-8" />
< property name = " username" value = " root" />
< property name = " password" value = " 123456" />
</ dataSource>
</ environment>
</ environments>
< mappers>
< mapper resource = " com/jin/mapper/UserMapper.xml" />
</ mappers>
</ configuration>
在mapper包下建个UserMapperUtils:
package com. jin. 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 ;
public class UserMapperUtils {
private static SqlSessionFactory sqlSessionFactory;
static {
try {
String resource = "mybatis-config.xml" ;
InputStream inputStream = Resources . getResourceAsStream ( resource) ;
sqlSessionFactory = new SqlSessionFactoryBuilder ( ) . build ( inputStream) ;
} catch ( IOException e) {
e. printStackTrace ( ) ;
}
}
public static SqlSession getSqlSession ( ) {
return sqlSessionFactory. openSession ( ) ;
}
}
最后一步测试:
在test包下的java中建个MyTest:(用来测试)
import com. jin. mapper. UserMapper ;
import com. jin. pojo. User ;
import com. jin. utils. UserMapperUtils ;
import org. apache. ibatis. session. SqlSession ;
import org. junit. Test ;
public class MyTest {
@Test
public void selectUser ( ) {
SqlSession sqlSession = UserMapperUtils . getSqlSession ( ) ;
UserMapper mapper = sqlSession. getMapper ( UserMapper . class ) ;
for ( User user : mapper. selectUser ( ) ) {
System . out. println ( user) ;
}
sqlSession. close ( ) ;
}
@Test
public void selectByIdUser ( ) {
SqlSession sqlSession = UserMapperUtils . getSqlSession ( ) ;
UserMapper mapper = sqlSession. getMapper ( UserMapper . class ) ;
User user = mapper. selectByIdUser ( 1 ) ;
System . out. println ( user) ;
sqlSession. close ( ) ;
}
@Test
public void addUser ( ) {
SqlSession sqlSession = UserMapperUtils . getSqlSession ( ) ;
UserMapper mapper = sqlSession. getMapper ( UserMapper . class ) ;
int i = mapper. addUser ( new User ( 6 , "再努力一些" , "123" ) ) ;
if ( i> 0 ) {
System . out. println ( "添加成功!" ) ;
} else {
System . out. println ( "添加失败!" ) ;
}
sqlSession. commit ( ) ;
sqlSession. close ( ) ;
}
@Test
public void updateUser ( ) {
SqlSession sqlSession = UserMapperUtils . getSqlSession ( ) ;
UserMapper mapper = sqlSession. getMapper ( UserMapper . class ) ;
int i = mapper. updateUser ( new User ( 6 , "奥里给" , "321" ) ) ;
if ( i> 0 ) {
System . out. println ( "修改成功!" ) ;
} else {
System . out. println ( "修改失败!" ) ;
}
sqlSession. commit ( ) ;
sqlSession. close ( ) ;
}
@Test
public void deleteUser ( ) {
SqlSession sqlSession = UserMapperUtils . getSqlSession ( ) ;
UserMapper mapper = sqlSession. getMapper ( UserMapper . class ) ;
int i = mapper. deleteUser ( 6 ) ;
if ( i> 0 ) {
System . out. println ( "删除成功!" ) ;
} else {
System . out. println ( "删除失败!" ) ;
}
sqlSession. commit ( ) ;
sqlSession. close ( ) ;
}
}
不要看着代码多,其实官方上都给了一些代码并详细说明,只管复制粘贴即可!(前提一定要懂代码是什么意思才行!)