MyBatis01--MyBatis简介
来源:互联网 发布:ubuntu设置分辨率命令 编辑:程序博客网 时间:2024/06/05 06:10
MyBatis是什么?
MyBatis是一款支持普通SQL查询、存储过程和高级映射的持久层框架。MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plan Old Java Objects,普通的 Java 对象)映射成数据库中的记录。
orm工具的基本思想
无论是用过的 hibernate,Mybatis,你都可以发现他们有一个共同点:
1.从配置文件(通常是 XML 配置文件中)获取数据库连接信息,通过配置信息构建SqlSessionFactory
2.由SqlSessionFactor 产生 sqlSession,打开数据库会话。
3.在 session 中完成对数据的增删改查和事务提交等.
4.在用完之后关闭 session 。
5.在Java对象和数据库之间有做 mapping 的配置文件,也通常是 xml 文件。
在上面,我们提到了通过SqlSessionFactory产生sqlSession,这里介绍一下SqlSession的作用
SqlSession的作用
1、向sql语句传入参数
2、执行sql语句
3、获取执行sql语句的结果
4、对事物的控制
环境搭建
先建一张简单的user表:
create table `user` ( `id` int(10) not null auto_increment, `userName` varchar(50) default null, `userAge` int(11) default null, `userAddress` varchar(200) default null, primary key (`id`)) ENGINE=InnoDB auto_increment=2 default charset=utf8;insert into `user` values('1', 'zhangsan', '20', 'shandong');
一个名为user的表格,里面存放了user相关字段,然后我们需要有一个Java实体类与之对应。
public class User { private int id; private String userName; private String userAge; private String userAddress; public User() { super(); } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getUserAge() { return userAge; } public void setUserAge(String userAge) { this.userAge = userAge; } public String getUserAddress() { return userAddress; } public void setUserAddress(String userAddress) { this.userAddress = userAddress; }}
设置 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> <typeAliases> <typeAlias alias="User" type="cn.edu.ldu.model.User"/> </typeAliases> <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://127.0.0.1:3306/mybatis" /> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <mappers> <mapper resource="cn/edu/ldu/model/User.xml"/> </mappers></configuration>
这是最简单的config.xml的写法,关于config.xml的具体介绍,将在下面一篇文章里进行介绍。
建立User 的映射文件:user.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="cn.edu.ldu.models.UserMapper"> <select id="selectUserByID" parameterType="int" resultType="User"> select * from `user` where id = #{id} </select></mapper>
java代码:
首先,建立一个IUserOperation接口类:
public interface IUserOperation { public User selectUserByID(int id);}
Test测试类:
public class Test { private static SqlSessionFactory sqlSessionFactory; private static Reader reader; static { try { reader = Resources.getResourceAsReader("config.xml"); sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static SqlSessionFactory getSessionFactory() { return sqlSessionFactory; } /** * 通过id查询 * @param id */ public void selectUserByID(int id) { SqlSession session = sqlSessionFactory.openSession(); try { IUserOperation iUserOperation = session.getMapper(IUserOperation.class); User user = iUserOperation.selectUserByID(id); System.out.println("result:"+user.getId()+","+user.getUserName()); } finally { session.close(); } } public static void main(String[] args) { Test testUser=new Test(); testUser.selectUserByID(2); }}
导入jar包:
运行结果:
0 0
- MyBatis01--MyBatis简介
- MyBatis01 MyBatis基础知识
- MyBatis01
- mybatis01
- mybatis01
- MyBatis简介
- MyBatis简介
- Mybatis简介
- mybatis简介
- MyBatis简介
- Mybatis简介
- MyBatis简介
- Mybatis简介
- Mybatis简介
- MyBatis简介
- MyBatis简介
- Mybatis简介
- Mybatis简介
- unknow run configuration type androidrunconfigurationtype
- Android应用更新
- JS中关于client.width、offsetwidth、screen.width、scrollWidth的区别
- Oracle学习之:闪回表
- Python 调用py文件
- MyBatis01--MyBatis简介
- 80%的程序员不了解的调试技巧
- Azure夜校培训第二场2月22日18:00 正式盛情开幕
- leetcode485
- #if与if有什么区别
- 如何使用Journalctl查看并操作Systemd日志
- Linux统计某文件夹下文件、文件夹的个数
- 【手把手】JavaWeb 入门级项目实战 -- 文章发布系统 (作者:剽悍一小兔)前五节学习随笔
- iOS中使用GCDAsyncSocket建立长连接