1单独使用mybatis
1配置日志
所需jar:
log4j-1.2.17.jar
slf4j-api-1.7.25.jar
slf4j-log4j12-1.7.25.jar
log4j.properties
log4j.rootLogger=DEBUG,A1
log4j.logger.org.apache=DEBUG
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c]-[%p] %m%n
2配置mybatis
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">
<configuration>
<properties>
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<!--UTC是统一标准世界时间-->
<property name="url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="toor"/>
</properties>
<environments default="development">
<environment id="development">
<!--配置事务的管理方式-->
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<!--<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>-->
<!-- 将包内的映射器接口实现全部注册为映射器 --><!-- 将包内的映射器接口实现全部注册为映射器 -->
<mappers>
<package name="wwj.spirng.mybatis" />
</mappers>
</configuration>
3例子
MybatisExample.java
package wwj.spirng.mybatis;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MybatisExample {
@org.junit.Test
public void test() throws IOException {
String resource = "mybatis-config.xml";
InputStream resourceAsStream = Resources.getResourceAsStream(resource);
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
/*
SqlSessionFactory 一旦被创建就应该在应用的运行期间一直存在,没有任何理由丢弃它或重新创建另一个实例。
使用 SqlSessionFactory 的最佳实践是在应用运行期间不要重复创建多次,
多次重建 SqlSessionFactory 被视为一种代码“坏习惯”。
最简单的就是使用单例模式或者静态单例模式。
*/
SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(resourceAsStream);
/*
每个线程都应该有它自己的 SqlSession 实例。
SqlSession 的实例不是线程安全的,因此是不能被共享的每个线程都应该有它自己的 SqlSession 实例。
SqlSession 的实例不是线程安全的,因此是不能被共享的
*/
SqlSession sqlSession = sqlSessionFactory.openSession();
SqlMapper mapper = sqlSession.getMapper(SqlMapper.class);
int xiaoming = mapper.addUser("xiaoming");
System.out.println(xiaoming);
sqlSession.commit();//不用此句,数据库中是不会改变的
}
}
SqlMapper.java
package wwj.spirng.mybatis;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
public interface SqlMapper {
@Insert("insert into user(username)values(#{username})")
int addUser(@Param("username") String username);
}