一.Mybatis简介
1.什么是Mybatis?
MyBatis是一个优秀的持久层框架,它对jdbc操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。
Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。
2.持久化
持久化就是将程序的数据在持久状态和瞬时状态转化的过程
内存:断电即失
数据库(JDBC),io文件持久化。
生活:冷藏、罐头。
为什么需要持久化?------------------------有一些对象,不能让他丢掉。
3. 代码
1.数据库
CREATE DATABASE IF NOT EXISTS myTest; use myTest; -- ---------------------------- -- Table structure for user -- ---------------------------- DROP TABLE IF EXISTS `account`; CREATE TABLE `account` ( `id` int(4) unsigned NOT NULL AUTO_INCREMENT COMMENT '编号', `name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名', `money` DOUBLE NOT NULL DEFAULT '0.0' COMMENT '余额', PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='账户信息表'; INSERT INTO account(name, money) VALUES("张三", 400.0); INSERT INTO account(name, money) VALUES("李四", 1100.0);
2.根据数据库的结构编写对应的Bean类。
package cn.gqx.bean; import java.io.Serializable; public class Account implements Serializable { private Long id; private String name; private double money; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getMoney() { return money; } public void setMoney(double money) { this.money = money; } public Account(Long id, String name, double money) { this.id = id; this.name = name; this.money = money; } @Override public String toString() { return "Account{" + "id='" + id + '\'' + ", name='" + name + '\'' + ", money=" + money + '}'; } }
3.针对该类编写该类的操作接口IAccountDao与映射IAccountDao.xml文件。
public interface IAccountDao { List<Account> findAll(); }
<?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.gqx.dao.IAccountDao"> <!-- 查询所有信息--> <select id="findAll" resultType="cn.gqx.bean.Account"> select * from account </select> </mapper>
4. 配置mybatis的数据库映射配置xml(SqlMapConfig.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属性来指定当前项目运行过程中使用的是哪个数据源 --> <environments default="development"> <!-- environment 用于配置一个具体的独立的数据源 id属性用于给当前数据源定义一个名称,方便我们的项目指定 --> <environment id="development"> <!-- transactionManager用于配置事务管理,默认情况下使用的是JDBC事务管理 --> <transactionManager type="JDBC"/> <!-- dataSource具体数据源的链接信息;type属性用于指定是否使用连接池 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://127.0.0.1:3306/myTest?characterEncoding=utf8&useUnicode=true&useSSL=false"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <!-- mappers主要用于配置我们外部的映射配置文件 在主配置文件中需要引入加载映射配置文件 --> <mappers> <!-- mapper主要配置引入某一个具体的映射文件,resource进行路径方式的引入 --> <mapper resource="mapper/IAccountDao.xml"/> </mappers> </configuration>
5. 测试类
public class TestMybatis { @Test public void test() throws IOException { String resource = "mybatis-config.xml"; InputStream is = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is); SqlSession session= sqlSessionFactory.openSession(); List<Account> list = session.selectList("findAll"); for (Account account:list){ System.out.println(account); } session.close(); } }
标签:account,name,money,public,mybatis,id,String From: https://www.cnblogs.com/helloworldcode/p/17327812.html