日志框架 log4j logback
1、src/main/resources/conf.xml mybatis 配置文件加入
<settings>
<setting name="logPrefix" value="dao."/>
</settings>
2、maven项目pom.xml文件加入logback依赖包
<!-- logback -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
3、logback默认配置文件在 src/main/resources/logback.xml
[%-5level] %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n4、maven 读取资源文件配置文件 pom.xml src/main/java src/test/java src/main/java /*.xml src/main/resources /.xml **/.properties
数据库准备 CREATE TABLE db_class( cidid INT UNSIGNED AUTO_INCREMENT, cname VARCHAR(30), PRIMARY KEY(id) );
INSERT INTO db_class VALUES(NULL,'计算机'),(NULL,'网络');
CREATE TABLE db_teac(
id INT UNSIGNED AUTO_INCREMENT,
NAME VARCHAR(30),
cid INT UNSIGNED,
PRIMARY KEY(id)
)
INSERT INTO db_teac VALUES(NULL,'李老师',1),(NULL,'赵老师',2)
INSERT INTO db_teac VALUES(NULL,'周老师',NULL),(NULL,'郑老师',NULL)
SELECT tt.id,tt.`name`,cc.`name` FROM db_teac tt LEFT JOIN db_class cc ON cc.id=tt.cid
SELECT * FROM db_teac m,db_class a WHERE m.id=1 AND m.cid=a.id
pom.xml 4.0.0 com.fz mybatis05 war 1.0 mybatis05 http://maven.apache.org junit junit 4.12 test
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.43</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.4</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
</dependency>
<!-- logback 显示日志,用来显示sql语句相关的信息-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<sourceDirectory>src/main/java</sourceDirectory>
<testSourceDirectory>src/test/java</testSourceDirectory>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
<plugins>
</plugins>
</build>
</project>
src/main/resources/ db.properties db.driver=com.mysql.jdbc.Driver db.url=jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=utf8&useSSL=true db.username=root db.password=123
mybatis-conf.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="db.properties"/>
<settings>
<!-- logback -->
<setting name="logPrefix" value="dao."/>
</settings>
<typeAliases>
<!-- 将实体包下的类自动为别名 com.fz.entity.User 别名就是 user-->
<package name="com.fz.entity"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${db.driver}"/>
<property name="url" value="${db.url}"/>
<property name="username" value="${db.username}"/>
<property name="password" value="${db.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- <mapper resource="com/fz/mapper/StudentMapper.xml"/> -->
<!-- <mapper class="com.fz.mapper.BookMapper"/> -->
<package name="com.fz.mapper"/>
</mappers>
</configuration>
logback.xml
<?xml version="1.0"?>
<configuration>
<!-- ch.qos.logback.core.ConsoleAppender 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>[%-5level] %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- 日志级别 -->
<root>
<level value="error" />
<appender-ref ref="console" />
</root>
<logger name="dao" level="DEBUG"/>
</configuration>
编写实体类 package com.fz.entity;
import lombok.Data;
/**
* Created by webrx on 2017-08-28.
*/
@Data
public class StuClass {
private int cid;
private String cname;
}
package com.fz.entity;
import lombok.Data;
/**
* Created by webrx on 2017-08-28.
*/
@Data
public class Teacher {
private int id;
private String name;
private StuClass sclass;
}
编写XxxMapper.java 接口及 配置 XxxMapper.xml 文件
package com.fz.mapper;
/**
* Created by webrx on 2017-08-28.
*/
public interface StuClassMapper {
}
<?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">
<mapper namespace="com.fz.mapper.StuClassMapper">
</mapper>
package com.fz.mapper;
import com.fz.entity.Teacher;
/**
* Created by webrx on 2017-08-28.
*/
public interface TeacherMapper {
public Teacher queryById(int id);
}
<?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">
<mapper namespace="com.fz.mapper.TeacherMapper">
<resultMap id="m1" type="teacher">
<id property="id" column="id"/>
<result property="name" column="name"/>
<association property="sclass" javaType="stuClass">
<id property="cid" column="cid"/>
<result property="cname" column="cname"/>
</association>
</resultMap>
<select id="queryById" statementType="PREPARED" parameterType="int" resultMap="m1">
select m.id,m.name,a.cid,a.cname from db_teac m,db_class a where m.id=#{id} and m.cid=a.cid
</select>
</mapper>
Mybatis 工具类 package com.fz.mybatis;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
/**
* Created by webrx on 2017-08-28.
*/
public class MyHelper<E> {
private SqlSessionFactory sf;
private SqlSession ss;
private Class e;
public MyHelper(){
InputStream i = null;
try {
i = Resources.getResourceAsStream("mybatis-conf.xml");
this.sf = new SqlSessionFactoryBuilder().build(i);
this.ss = this.sf.openSession();
} catch (IOException e) {
e.printStackTrace();
}
}
public SqlSessionFactory getSqlSessionFactory(){
return this.sf;
}
public Connection getConn(){
return this.ss.getConnection();
}
public MyHelper(Class e){
InputStream i = null;
try {
i = Resources.getResourceAsStream("mybatis-config.xml");
this.sf = new SqlSessionFactoryBuilder().build(i);
this.ss = this.sf.openSession();
this.e = e;
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
public SqlSession getSession(){
return this.ss;
}
public E getMapper(){
return (E)this.ss.getMapper(this.e);
}
public E getMapper(Class c){
return (E)this.ss.getMapper(c);
}
public void close(){
if(this.ss!=null){
this.ss.commit();
this.ss.close();
}
}
}
测试程序 public class Demo { @Test public void tt(){ MyHelper mh = new MyHelper(); SqlSession s = mh.getSession(); TeacherMapper tdao = s.getMapper(TeacherMapper.class); Teacher tea = tdao.queryById(1);
System.out.println(tea.getName());
System.out.println(tea.getId());
StuClass sc = tea.getSclass();
System.out.println(sc.getCid());
System.out.println(sc.getCname());
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。