本文共 5366 字,大约阅读时间需要 17 分钟。
什么是Mybatis?
org.mybatis mybatis 3.5.1
CREATE DATABASE /*!32312 IF NOT EXISTS*/`mybatis` /*!40100 DEFAULT CHARACTER SET utf8 */;USE `mybatis`;DROP TABLE IF EXISTS `user`;CREATE TABLE `user` ( `id` int(20) NOT NULL, `name` varchar(30) DEFAULT NULL, `pwd` varchar(30) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;insert into `user`(`id`,`name`,`pwd`) values (1,'狂神','123456'),(2,'张三','abcdef'),(3,'李四','987654');
import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.IOException;import java.io.InputStream;//mybatis的工具类,重复的代码的提纯public class MyBatisUtils { //类变量不需要设置默认值; private static SqlSessionFactory sqlSessionFactory; static { //在maven中,所有的资源文件一般都放在resources目录下,我们可以直接拿到。 InputStream inputStream = null; try { String resource = "mybatis-config.xml"; inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { e.printStackTrace(); }finally { if (inputStream != null){ try { inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } } //设置SqlSessionFactory公共的方法 public static SqlSessionFactory getSqlSessionFactory(){ return sqlSessionFactory; }}
driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=utf-8username=rootpassword=123456
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 + '\'' + '}'; }}
import com.baidu.pojo.User;import java.util.List;public interface UserMapper { //获取全部的用户 ListselectUser();}
import com.baidu.pojo.User;import com.baidu.utils.MyBatisUtils;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.junit.Test;import java.util.List;public class UserMapperTest { @Test public void selectUser(){ //1.拿到sqlSessionFactory对象 SqlSessionFactory sqlSessionFactory = MyBatisUtils.getSqlSessionFactory(); //2.通过sqlSessionFactory对象openSession()创建一个sqlSession。 SqlSession sqlSession = sqlSessionFactory.openSession(); //3.通过sqlSession获得mapper对象 , 参数为映射文件对应的接口类的class对象 UserMapper mapper = sqlSession.getMapper(UserMapper.class); //4.通过mapper对象来执行操作; Listusers = mapper.selectUser(); //获得结果集 for (User user : users) { System.out.println(user); } }}
import com.baidu.pojo.User;import java.util.List;public interface UserMapper { //获取全部的用户 ListselectUser(); User getUserById(int id); int insertUser(User user); int removeUserById(int id); int updateUser(User user);}
insert into user (id,name,pwd) values (#{id},#{name},#{pwd}) delete from user where id = #{id} update user set name = #{name},pwd = #{pwd} where id = #{id}
属性:实体类
字段:数据库比如说,你在数据库中的字段名是pwd,而你在实体类中写的是password,则在查询的时候,就会出现如下情况:
解决方法二:mysql数据库查询时,起别名。(不推荐使用,字段多的情况下,比较乱)
解决方法三:
转载地址:http://jhohn.baihongyu.com/