初始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 舞凍

浙公网安备 33010602011771号