1 Star 0 Fork 0

webrx / mybatis05

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

日志框架 log4j logback

mybatis logback 显示sql

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%n

4、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());
    }
}

空文件

简介

暂无描述 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/webrx/mybatis05.git
git@gitee.com:webrx/mybatis05.git
webrx
mybatis05
mybatis05
master

搜索帮助