1.创建实体来
public class User {
private int id;
private String name;
private String password;
public User ( int id, String name, String password) {
this . id = id;
this . name = name;
this . password = password;
}
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 getPassword ( ) {
return password;
}
public void setPassword ( String pwd) {
this . password = password;
}
@Override
public String toString ( ) {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", password='" + password + '\'' +
'}' ;
}
}
2. 核心配置文件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>
< properties resource = " db.properties" />
< settings>
< setting name = " logImpl" value = " LOG4J" />
</ settings>
< typeAliases>
< typeAlias type = " com.test.pojo.User" alias = " user" />
</ typeAliases>
< environments default = " development" >
< environment id = " development" >
< transactionManager type = " JDBC" />
< dataSource type = " POOLED" >
< property name = " driver" value = " ${driver}" />
< property name = " url" value = " ${url}" />
< property name = " username" value = " ${username}" />
< property name = " password" value = " ${password}" />
</ dataSource>
</ environment>
< environment id = " test" >
< transactionManager type = " JDBC" />
< dataSource type = " POOLED" >
< property name = " driver" value = " com.mysql.jdbc.Driver" />
< property name = " url" value = " jdbc:mysql://localhost:3306/mybatis?userSSL=true&
userUnicode=true& characterEncoding=UTF-8" />
< property name = " username" value = " root" />
< property name = " password" value = " 123456" />
</ dataSource>
</ environment>
</ environments>
< mappers>
< mapper resource = " com/test/dao/UserMapper.xml" > </ mapper>
</ mappers>
</ configuration>
3. 工具类开启自动提交事务
public class MybatisUtils {
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 ( true ) ;
}
}
4. 编写接口
public interface UserMapper {
@Select ( "SELECT * FROM USER WHERE id = #{uId}" )
User getUserById ( @Param ( "uId" ) int id) ;
@Insert ( "INSERT INTO USER VALUES(#{user.id},#{user.name},#{user.password})" )
int addUser ( @Param ( "user" ) User user) ;
@Insert ( "INSERT INTO USER VALUES(#{id},#{name},#{pwd})" )
int addUser2 ( @Param ( "id" ) int id, @Param ( "name" ) String name, @Param ( "pwd" ) String pwd) ;
@Insert ( "INSERT INTO USER VALUES(#{map.id},#{map.name},#{map.pwd})" )
int addUser3 ( @Param ( "map" ) Map< String, Object> map) ;
@Update ( "UPDATE USER SET NAME = #{user.name},PWD = #{user.password} WHERE ID = #{user.id} " )
int updateUser ( @Param ( "user" ) User user) ;
@Update ( "UPDATE USER SET NAME = #{name},PWD = #{pwd} WHERE ID = #{id} " )
int updateUser2 ( @Param ( "id" ) int id, @Param ( "name" ) String name, @Param ( "pwd" ) String pwd) ;
@Update ( "UPDATE USER SET NAME = #{map.name},PWD = #{map.pwd} WHERE ID = #{map.id} " )
int updateUser3 ( @Param ( "map" ) Map< String, Object> map) ;
@Delete ( "DELETE FROM USER WHERE ID = #{id}" )
int deleteUser ( @Param ( "id" ) int id) ;
}
5. 测试
public class UserDaoTest {
@Test
public void test ( ) {
SqlSession sqlSession = null;
try {
sqlSession= MybatisUtils. getSqlSession ( ) ;
UserMapper userDao = sqlSession. getMapper ( UserMapper. class ) ;
User user = userDao. getUserById ( 1 ) ;
System. out. println ( user) ;
} catch ( Exception e) {
e. printStackTrace ( ) ;
} finally {
if ( sqlSession != null) {
sqlSession. close ( ) ;
}
}
}
@Test
public void test2 ( ) {
SqlSession sqlSession = null;
try {
sqlSession= MybatisUtils. getSqlSession ( ) ;
UserMapper userDao = sqlSession. getMapper ( UserMapper. class ) ;
int num = userDao. addUser ( new User ( 6 , "哈哈6" , "12333336" ) ) ;
if ( num > 0 ) {
System. out. println ( "插入成功!" ) ;
}
} catch ( Exception e) {
e. printStackTrace ( ) ;
} finally {
sqlSession. close ( ) ;
}
}
@Test
public void test3 ( ) {
SqlSession sqlSession = null;
try {
sqlSession= MybatisUtils. getSqlSession ( ) ;
UserMapper userDao = sqlSession. getMapper ( UserMapper. class ) ;
int num = userDao. addUser2 ( 7 , "哈哈7" , "12333337" ) ;
if ( num > 0 ) {
System. out. println ( "插入成功!" ) ;
}
} catch ( Exception e) {
e. printStackTrace ( ) ;
} finally {
sqlSession. close ( ) ;
}
}
@Test
public void test4 ( ) {
SqlSession sqlSession = null;
try {
sqlSession= MybatisUtils. getSqlSession ( ) ;
UserMapper userDao = sqlSession. getMapper ( UserMapper. class ) ;
HashMap< String, Object> map = new HashMap < String, Object> ( ) ;
map. put ( "id" , 8 ) ;
map. put ( "name" , "哈哈8" ) ;
map. put ( "pwd" , "12333338" ) ;
int num = userDao. addUser3 ( map) ;
if ( num > 0 ) {
System. out. println ( "插入成功!" ) ;
}
} catch ( Exception e) {
e. printStackTrace ( ) ;
} finally {
sqlSession. close ( ) ;
}
}
@Test
public void test5 ( ) {
SqlSession sqlSession = null;
try {
sqlSession= MybatisUtils. getSqlSession ( ) ;
UserMapper userDao = sqlSession. getMapper ( UserMapper. class ) ;
int num = userDao. updateUser ( new User ( 8 , "888888" , "88888888888" ) ) ;
if ( num > 0 ) {
System. out. println ( "修改成功!" ) ;
}
} catch ( Exception e) {
e. printStackTrace ( ) ;
} finally {
sqlSession. close ( ) ;
}
}
@Test
public void test6 ( ) {
SqlSession sqlSession = null;
try {
sqlSession= MybatisUtils. getSqlSession ( ) ;
UserMapper userDao = sqlSession. getMapper ( UserMapper. class ) ;
int num = userDao. updateUser2 ( 8 , "22222" , "22222" ) ;
if ( num > 0 ) {
System. out. println ( "修改成功!" ) ;
}
} catch ( Exception e) {
e. printStackTrace ( ) ;
} finally {
sqlSession. close ( ) ;
}
}
@Test
public void test7 ( ) {
SqlSession sqlSession = null;
try {
sqlSession= MybatisUtils. getSqlSession ( ) ;
UserMapper userDao = sqlSession. getMapper ( UserMapper. class ) ;
HashMap< String, Object> map = new HashMap < String, Object> ( ) ;
map. put ( "id" , 8 ) ;
map. put ( "name" , "哈哈8" ) ;
map. put ( "pwd" , "12333338" ) ;
int num = userDao. updateUser3 ( map) ;
if ( num > 0 ) {
System. out. println ( "修改成功!" ) ;
}
} catch ( Exception e) {
e. printStackTrace ( ) ;
} finally {
sqlSession. close ( ) ;
}
}
@Test
public void test8 ( ) {
SqlSession sqlSession = null;
try {
sqlSession= MybatisUtils. getSqlSession ( ) ;
UserMapper userDao = sqlSession. getMapper ( UserMapper. class ) ;
int num = userDao. deleteUser ( 8 ) ;
if ( num > 0 ) {
System. out. println ( "删除成功!" ) ;
}
} catch ( Exception e) {
e. printStackTrace ( ) ;
} finally {
sqlSession. close ( ) ;
}
}
}
关于@Param注解
基本类型的参数或者String类型,需要加上 引用类型不需要加 如果只有一个基本类型的话,可以忽略,但是建议大家都加上! 我们在SQL中引用的就是我们这里的@Param()中设定的属性名!