mybatis
文档:http://www.mybatis.org/mybatis-3/zh/getting-started.html
数据库:存储引擎(storage_engine)
1. 认识存储引擎
存储引擎就是:数据库管理系统如何存储数据、如何为存储的数据建立索引与如何更新、查询数据等技术的实现方法。
数据库存储引擎是数据库底层软件组件,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。mysql的核心就是存储引擎。
MySQL的核心就是插件式存储引擎,支持多种存储引擎。
2. 查询存储引擎
show engines;
3. 常用的存储引擎的比较
InnoDB:支持事务处理,支持外键,支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。
MyISAM: 插入数据快,空间和内存使用比较低。如果表主要是用于插入新记录和读出记录,那么选择MyISAM能实现处理高效率。如果应用的完整性、并发性要求比 较低,也可以使用。
MEMORY: 所有的数据都在内存中,数据的处理速度快,但是安全性不高。如果需要很快的读写速度,对数据的安全性要求较低,可以选择MEMOEY。它对表的大小有要求,不能建立太大的表。所以,这类数据库只使用在相对较小的数据库表。
Archive:如果只有INSERT和SEECT操作,可以选择Archive,Archive支持高并发的插入操作,但是本身不是事务安全的。Archive非常适合存储归档数据,如记录日志信息。
4、maven资源配置
1 <build> 2 <resources> 3 <resource> 4 <directory>src/main/java</directory> 5 <includes> 6 <include>**/*.xml</include> 7 <include>**/*.properties</include> 8 </includes> 9 <filtering>true</filtering> 10 </resource> 11 <!-- 如果配置了拷贝java classpath下面的xml,项目中其他的配置文件应该手动配置复制过去 --> 12 <resource> 13 <directory>src/main/resources</directory> 14 <includes> 15 <include>**/*.xml</include> 16 <include>**/*.properties</include> 17 </includes> 18 <filtering>true</filtering> 19 </resource> 20 </resources> 21 </build>
5、入门练习
<?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="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/day14"/> <property name="username" value="root"/> <property name="password" value="lisen"/> </dataSource> </environment> </environments> <mappers> <mapper resource="UserMapper.xml"/> </mappers> </configuration>
package com.li.utils; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.IOException; import java.io.InputStream; public class MybatisUtils { public static SqlSessionFactory sqlSessionFactory; static { try { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { e.printStackTrace(); } } public static SqlSession getSqlSession(){ return sqlSessionFactory.openSession(); } }
package com.li.dao; import com.li.pojo.User; import java.util.List; public interface UserMapper { List<User> getuserlist(); }
package com.li.dao; 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 UserDaoTest { @Test public void test(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); // 方式一: // UserMapper mapper = sqlSession.getMapper(UserMapper.class); // List<User> getuserlist = mapper.getuserlist(); // 方式二: List<User> getuserlist = sqlSession.selectList("com.li.dao.UserMapper.getuserlist"); for (User user : getuserlist) { System.out.println(user); } sqlSession.close(); } }
<?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="com.li.dao.UserMapper">
<select id="getuserlist" resultType="com.li.pojo.User">
select * from user ;
</select>
</mapper>

浙公网安备 33010602011771号