初始MyBatis
Posted 舞凍
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初始MyBatis相关的知识,希望对你有一定的参考价值。
一.熟悉Mybatis基础配置
1.首先导入我们需要的jar包(向pom.xml)
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> </dependency> <!--引入mysql数据库需要的jar--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> </dependency> <!--父项目中引入log4j的配置--> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <!--引入mybatis需要的jar--> <dependency> <groupId>asm</groupId> <artifactId>asm</artifactId> <version>3.3.1</version> </dependency> <dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> <version>2.2.2</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> <version>3.17.1-GA</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.5</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.5</version> <scope>test</scope> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.3.0</version> </dependency> //放在build标签中 <build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </build>
二.在src下建立resources文件夹(记得点击 Mark Directory as中的Resources Root把器变成可被程序解析的文件夹)
1.首先需要配置大配置文件(上图中的mybatis.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> <!--核心配置--> <properties resource="jdbc.properties"/> <!-- 配置连接数据库的四要素--> <!--设置别名--> <typeAliases> <!--所有cn.wd.pojo包下的所有类的别名都是类名小写或大写--> <package name="cn.wd.pojo"/> </typeAliases> <!--设置mybatis运行环境 default默认运行环境是environment节点中的id --> <environments default="mysql"> <environment id="mysql"> <!--设置事务管理 后续ssm整合就交给Spring去管理--> <transactionManager type="JDBC"></transactionManager> <!--配置数据源 POOLED:mybatis自带的数据源 JNDI:tomcat中的数据源--> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </dataSource> </environment> </environments> <mappers> <!--管理我们设置的映射文件--> <mapper resource="cn/wd/dao/UserMapper.xml"/> </mappers> </configuration>
2.因为使用的是连接池,所以需要配套文件(上图中的jdbc.properties)
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql:///mybatis jdbc.username=root jdbc.password=root
3.导入我们的日志文件(上图中的log4j.properties)
log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.Target=System.out log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=[%-5p] %c %L %m %n log4j.rootLogger=trace,console
三.因为MyBatis是基于ORM映射的,所以我们需要建立实体类(pojo)
四.在dao层建立接口和映射文件(.xml)
1.建立xxxMapper接口来写入我们要实现的方法
举个栗子~ //新增: int add(User user);
2.作为最重要的核心SQL语句写在映射文件中
<!--增加--> <insert id="add" parameterType="User"> <selectKey resultType="int" keyProperty="id" order="AFTER"> SELECT @@identity </selectKey> INSERT INTO user(userName,password) VALUE (#{userName},#{password}) </insert>
注:1. id=“add” 为方法名,必须与接口中的方法保持一致;
2.parameterType="User" 为方法的参数类型;
3.<selectKey resultType="int" keyProperty="id" order="AFTER"> SELECT @@identity </selectKey>
作用为获取添加后的id值(id自增),其中的
SELECT @@identity 与 SELECT LAST_INSERT_ID()方法用法相似,可以替换;
五.配置SqlSessionFactory的工具类
1.首先创建util的包
2.此方法设为单例更为贴切一些
public class SqlSessionFactoryUtil { private static SqlSessionFactory factory; private SqlSessionFactoryUtil() { } public static synchronized SqlSession getSession(){ try { /** * 给我们一个核心配置文件的位置 返回一个输入流 * 也就是把配置信息读取到了 内存中 方便我们后续使用 */ InputStream is = Resources.getResourceAsStream("mybatis.xml"); //通过构造器创建工厂 if(factory==null){ factory = new SqlSessionFactoryBuilder().build(is); } } catch (Exception e) { e.printStackTrace(); } return factory.openSession(); } }
3.之后就是在测试类里测试了
写就要写到底~~ static SqlSession session; static UserMapperLogin mapper; private static void selectAll() { //获取session session= SqlSessionFactoryUtil.getSession(); //获取mapper实例==》让接口和xml文件关联 mapper=session.getMapper(UserMapperLogin.class); User user=new User(); user.setPassword("小明"); user.setUserName("xm"); int num=mapper.add(user);//通过mapper通过调用接口的方法 System.out.println(user.getId()); if(num>0){ System.out.println("新增成功"); }else { System.out.println("新增失败"); } session.commit(); session.close(); }
小结:这样一个简单的功能就写完了,快去练习一下把~
by 舞凍
以上是关于初始MyBatis的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Swift 使用此代码片段为 iOS 应用程序初始化 SDK?