Mybatis-1基本实现
文章目录
- 一、编码流程
-
- 1、新建Bean类
- 2、导入对应的maven依赖
- 3、建立Mapper映射文件
- 4、配置文件
- 5、测试类
- 二、通过接口实现
-
- 1、新建Xs0101Mapper接口
- 2、映射文件调整
- 3、测试类
- 三、注意事项
-
- 1、数据库实体类字段不一致
- 四、配置文件详解
-
- 1、configuration.xml
-
- 1.1properties
- 1.2typeAliases
- 1.3mappers
一、编码流程
1、新建Bean类
package com.web.bean;import lombok.Data;@Datapublic class Xs0101 { private String xs0101Id; private String xh; private String xm; private String age; private String address;}
2、导入对应的maven依赖
引入Mybatis和Oracle的依赖
<dependencies><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.3.0</version></dependency><dependency><groupId>com.oracle</groupId><artifactId>ojdbc6</artifactId><version>11.2.0.1.0</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.24</version></dependency></dependencies>
处理配置文件读取问题
<build><resources><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource></resources></build>
3、建立Mapper映射文件
新建mapper包,在mapper包下新建Xs0101Mapper.xml,管理SQL
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="xs0101"> <select id="findXs0101ById" parameterType="java.lang.String" resultType="com.web.bean.Xs0101"> SELECT * FROM xs0101 WHERE xs0101Id = #{id} </select></mapper>
4、配置文件
在resources下新建configuration.xml,用于管理数据源,Mapper映射文件
<!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="oracle.jdbc.driver.OracleDriver" /> <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" /> <property name="username" value="scott" /> <property name="password" value="123456" /> </dataSource> </environment> </environments> <mappers> <!-- 标签用来配置映射文件的,可以有多个 --> <mapper resource="com/web/mapper/Xs0101Mapper.xml" /> </mappers></configuration>
5、测试类
public static void main(String[] args) { //读取配置文件 InputStream inputStream = null; try { inputStream = Resources.getResourceAsStream("configuration.xml"); } catch (IOException e) { e.printStackTrace(); } //创建SqlSession工厂 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream); //打开sqlSession,默认是不提交事务,带参数true后自动提交 SqlSession sqlSession = factory.openSession(true); //通过namespace.id的方式进行调用 Xs0101 xs0101 = sqlSession.selectOne("xs0101.findXs0101ById","1007"); System.out.println(xs0101); //提交回滚事务 //sqlSession.commit(); //sqlSession.rollback(); //关闭连接 sqlSession.close();}
二、通过接口实现
1、新建Xs0101Mapper接口
package com.web.mapper;import com.web.bean.Xs0101;public interface Xs0101Mapper { public Xs0101 findXs0101ById(String is);}
2、映射文件调整
Mapper映射文件中的namespace值更改为接口的权限名,SQL标签的id和接口的方法名保持一致
3、测试类
三、注意事项
1、数据库实体类字段不一致
1)通过别名处理
<select id="findXs0101ById" parameterType="java.lang.String" resultType="com.web.bean.Xs0101"> SELECT xs_0101id xs0101id,xh,xm,age,address FROM xs0101 WHERE xs_0101id = #{id}</select>
2)通过映射配置
<mapper namespace="xs0101"> <resultMap id="Xs0101Map" type="com.web.bean.Xs0101"> <id column="xs_0101id" property="xs0101id"/> <id column="xh" property="xh"/> <id column="age" property="age"/> <id column="address" property="address"/> </resultMap> <select id="findXs0101ById" parameterType="java.lang.String" resultType="com.web.bean.Xs0101"> SELECT xs_0101id,xh,xm,age,address FROM xs0101 WHERE xs_0101id = #{id} </select></mapper>
四、配置文件详解
1、configuration.xml
1.1properties
新建dbconfig.properties
configuration.xml
1.2typeAliases
建议写权限名