MyBais入门
---恢复内容开始---
MyBatis与Hibernate的比较
MyBatis与Hibernate都属于ORM框架,为数据层提供持久化操作做支持。
MyBatis的优点
1.简单且功能强大,通过Sql映射文件和SqlSsession能够实现数据持久层的功能。
2.可已完全控制执行的sql语句。
3.容易维护和修改,Sql语句写在配置文件里。
导入jar包:
<!--源码文件包--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.2</version> <classifier>sources</classifier> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.12</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.12</version> </dependency>
编写MyBatis配置文件:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="jdbc.properties"></properties> <settings> <setting name="autoMappingBehavior" value="PARTIAL"/> </settings> <typeAliases> <typeAlias type="cn.wwy.entity.wwyy" alias="all"></typeAlias> </typeAliases> <environments default="development">
//environments元素:用于配置多个数据环境。
<environment id="development">
//每个数据库环境的具体配置,包括数据连接信息
<transactionManager type="JDBC"></transactionManager>
//JDBC:直接使用JDBC控制事务。它依赖于从数据源得到的连接来管理事务范围。 <dataSource type="POOLED">
//PooLED:采用连接池创建新的连接实例时必要的初始连接和认证时间。这是一种当前Web应用程序快速响应请求的流行方法。 <property name="driver" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"></property> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </dataSource> </environment> </environments>
小配置
<?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.wwy.dao.WwyDaoImpl"> <!-- <resultMap id="selectAll2" type="cn.wwy.entity.wwyy"> <id property="id" column="id"></id> <result property="name" column="name"></result> <result property="age" column="age"></result> </resultMap> <select id="selectAll" resultMap="selectAll2"> select * from wwyy </select> --> <select id="selectAll3" resultType="all"> select * from wwyy WHERE id=#{id} </select> <insert id="insertinfo"> </insert> </mapper>
@Test public void test() throws IOException { String resource = "mybatis-cfg.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); //获得会话工厂 SqlSessionFactory sf = new SqlSessionFactoryBuilder().build(inputStream); //会话 SqlSession session = sf.openSession(); WwyDaoImpl mapper = session.getMapper(WwyDaoImpl.class); wwyy sles = mapper.selectAll3(1); System.out.println(sles.getName()); session.close(); }
数据库列所映射到的字段或属性的名称,如果存在和给定名称相同JavaBeans的属性。