简单的语句可以使用注解,复杂的语句就不推荐了
流程:
创建一个新的项目文件05,复制这三个文件。

复制之后
删除里面的内容,只留一个接口(使用注解就不需要xml了)。接口里面的内容也清理干净。(使用注解开发,注意注解的位置和内容)


- package com.Li.dao;
-
- import com.Li.pojo.User;
- import org.apache.ibatis.annotations.Select;
-
- import java.util.List;
-
-
- public interface UserMapper {
- @Select("select * from user")
- List
getUsers(); - }
修改这个里面的内容:

- "1.0" encoding="UTF-8" ?>
- 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="STDOUT_LOGGING"/>
- settings>
-
-
- <typeAliases>
- <package name="com.Li.pojo"/>
- 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>
- environments>
-
-
- <mappers>
- <mapper class="com.Li.dao.UserMapper"/>
- mappers>
-
-
-
-
- configuration>
自己创建一个实体类

- import com.Li.dao.UserMapper;
- import com.Li.pojo.User;
- import com.Li.utils.MybatisUtils;
- import org.apache.ibatis.session.SqlSession;
- import org.junit.Test;
-
- import java.util.List;
-
- public class UserMapperTest {
-
- @Test
- public void Test(){
- SqlSession sqlSession = MybatisUtils.getSqlSession();
-
- UserMapper mapper = sqlSession.getMapper(UserMapper.class);
- List
users = mapper.getUsers(); -
- for (User user : users) {
- System.out.println(user);
- }
-
-
- sqlSession.close();
- }
- }
测试成功!
设置自动提交事务为true。这样在下面的插入和修改数据的时候就能保存成功了。

接口:
- package com.Li.dao;
-
- import com.Li.pojo.User;
- import org.apache.ibatis.annotations.Param;
- import org.apache.ibatis.annotations.Select;
-
- import java.util.List;
-
-
- public interface UserMapper {
-
- @Select("select * from user")
- List
getUsers(); -
- // @Param("id")通过注解来标识,注解内的内容作用于sql的#内容中。相当于给id起了一个名字,新名字是Param中的内容
- //引用对象不用谢Param,基本的数据类型就可以,比如int,string等等就可以
- @Select("select * from user where id = #{id}")
- User getUserByID(@Param("id") int id);
-
-
- }

测试:
- import com.Li.dao.UserMapper;
- import com.Li.pojo.User;
- import com.Li.utils.MybatisUtils;
- import org.apache.ibatis.session.SqlSession;
- import org.junit.Test;
-
- import java.util.List;
-
- public class UserMapperTest {
-
- @Test
- public void Test(){
- SqlSession sqlSession = MybatisUtils.getSqlSession();
-
- UserMapper mapper = sqlSession.getMapper(UserMapper.class);
- User userByID = mapper.getUserByID(1);
- System.out.println(userByID);
-
-
- sqlSession.close();
- }
- }

测试成功!
之后增加剩余CRUD的内容:
接口:
- package com.Li.dao;
-
- import com.Li.pojo.User;
- import org.apache.ibatis.annotations.*;
-
- import java.util.List;
-
-
- public interface UserMapper {
-
- @Select("select * from user")
- List
getUsers(); -
- // @Param("id")通过注解来标识,注解内的内容作用于sql的#内容中。相当于给id起了一个名字,新名字是Param中的内容
- //引用对象不用谢Param,基本的数据类型就可以,比如int,string等等就可以
- @Select("select * from user where id = #{id}")
- User getUserByID(@Param("id") int id);
-
- @Insert("insert into user (id,name,pwd) values(#{id},#{name},#{password})")
- int addUser(User user);
-
- @Update("update user set name=#{name},pwd=#{password} where id=#{id}")
- int updateUser(User user);
-
- @Delete("delete from user where id = #{uid}")
- int deleteUser(@Param("uid") int id);
-
-
- }
Test类:
- import com.Li.dao.UserMapper;
- import com.Li.pojo.User;
- import com.Li.utils.MybatisUtils;
- import org.apache.ibatis.session.SqlSession;
- import org.junit.Test;
-
- import java.util.List;
-
- public class UserMapperTest {
-
- @Test
- public void Test(){
- SqlSession sqlSession = MybatisUtils.getSqlSession();
-
- UserMapper mapper = sqlSession.getMapper(UserMapper.class);
- User userByID = mapper.getUserByID(1);
- System.out.println(userByID);
-
-
- sqlSession.close();
- }
-
-
- //下面是增删改查
-
- @Test
- public void addUser(){
- SqlSession sqlSession = MybatisUtils.getSqlSession();
-
- UserMapper userDao = sqlSession.getMapper(UserMapper.class);
- userDao.addUser(new User(6, "ikun","123"));
-
- sqlSession.close();
-
- }
-
- @Test
- public void updateUser(){
- SqlSession sqlSession = MybatisUtils.getSqlSession();
-
- UserMapper userDao = sqlSession.getMapper(UserMapper.class);
- userDao.updateUser(new User(6, "ctrl","12345"));
-
- sqlSession.close();
-
- }
-
- @Test
- public void deleteUser(){
- SqlSession sqlSession = MybatisUtils.getSqlSession();
-
- UserMapper userDao = sqlSession.getMapper(UserMapper.class);
- userDao.deleteUser(6);
-
-
- sqlSession.close();
-
- }
- }
最终可以一个一个测试,测试成功!!!
在新版的IDEA中直接在pom中导入lombox包即可

打开实体类Pojo的User,删除构造器,tostring等等的内容:

加入注解之后:
会发现加入一个注解会方便很多。很便捷!
@Data:get,set,tostring等等 @AllArgsConstructor:有参构造 @NoArgsConstructor:无参构造