02MyBatis开发环境搭建
1.房屋数据的增删改查
-
①创建Maven工程
-
开发环境搭建
-
②引入依赖的jar包 + 框架的配置文件
-
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency> <!-- https://mvnrepository.com/artifact/junit/junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.6</version> </dependency>
-
-
全局配置文件
- src/main/resouces/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">
<!--Mybatis全局配置文件-->
<configuration>
<environments default="development">
<environment id="development">
<!--使用JDBC管理事务mybatis-->
<transactionManager type="JDBC"/>
<!--数据库连接池mybatis内置的一个数据库连接池-->
<dataSource type="POOLED" >
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatisdb? useSSL=false"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!--加载映射文件-->
<mappers>
<mapper resource="HouseMapper.xml"/>
</mappers>
</configuration>
-
加载全局配置文件
-
@Test public void test() throws IOException { //1.读取Mybatis全局配置文件 InputStream in=Resources.getResourceAsStream("mybatis-config.xml"); //2.初始化SQL会话工厂 SqlSessionFactory sqlSessionFactory= new SqlSessionFactoryBuilder().build(in); //3.获取会话 SqlSession sqlSession= sqlSessionFactory.openSession(); //4.通过sql会话向数据库发起增删改查的请求 //5.关闭会话 sqlSession.close(); }
-
未执行第四步时,此时还未发起对数据库的访问
-
映射文件创建
- src/main/resource/HouseMapper.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"> <!--namespace命名空间,作用就是对sql进行分类化管理,理解sql隔离--> <mapper namespace="houseMapper"> <!--查询所有的酒店信息--> <!-- 1.id属性: 标识映射文件中的sql,将sql语句封装到mapped statement对象中,所以称为 statement的id 2.parameterType:指定输入参数类型 3.#{}:表示一个占位符 4.#{id}:其中的id表示接收的输入参数,如果输入参数是简单类型 5.#{}中的参数名可以任意,可以为value或者其他 6.resultType:指定sql输出结果的所映射的java对象类型, select指定resultType表示将单条记录映射成的java对象 --> <select id="getById" parameterType="java.lang.Integer" resultType="com.freshtest.mybatis.model.House"> SELECT * FROM house WHERE id= #{id} </select> </mapper>
会话工厂中增删改查语句
数据库名称之间相互映射 ,可以在sql语句中 起个别名 create_time createTime
houseMapper--命名空间 getById--id 1--所需参数
//4.通过sql会话向数据库发起增删改查的请求
House house= sqlSession.selectOne("houseMapper.getById",1);