java:Mybatis框架1(基本配置,log4j)

1.mybatis01:

  db.properties:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=root

  log4j.properties:

#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.logger.org.apache.ibatis=DEBUG
#log4j.rootLogger=warn,appender1
#log4j.appender.appender1=org.apache.log4j.ConsoleAppender
#log4j.appender.appender1.layout=org.apache.log4j.SimpleLayout  

  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 resource="db.properties"/>
    <environments default="development">
         <environment id="development">

             <!-- 使用jdbc中的事务 -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- 配置数据源 -->
            <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="cn/zzsxt/entity/TbUser.xml"/>
    </mappers>
</configuration>  

  TbUserDao.java:

package cn.zzsxt.dao;

import java.util.List;

import cn.zzsxt.entity.TbUser;

public interface TbUserDao {
    public List<TbUser> findAll();
    public TbUser findUserById(Long id);
    public int addUser(TbUser user);
    public int updateUser(TbUser user);
    public int deleteUser(long id);
}

  TbUserDaoImpl.java:

package cn.zzsxt.dao.impl;

import java.io.InputStream;
import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import cn.zzsxt.dao.TbUserDao;
import cn.zzsxt.entity.TbUser;

public class TbUserDaoImpl implements TbUserDao {

    @Override
    public List<TbUser> findAll() {
        //加载全局配置文件
        InputStream ips = this.getClass().getResourceAsStream("/mybatis-config.xml");
        //创建SqlSessionFactory
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(ips);
        //创建SqlSession
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //执行查询
        List<TbUser> list = sqlSession.selectList("user.findAll");//参数为映射文件中的statment id
        //释放资源
        sqlSession.close();
        return list;
    }

    @Override
    public TbUser findUserById(Long id) {
        //加载全局配置文件
        InputStream ips = this.getClass().getResourceAsStream("/mybatis-config.xml");
        //创建SqlSessionFactory
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(ips);
        //创建SqlSession
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //执行查询
        TbUser user =  sqlSession.selectOne("user.findUserById",id);
        sqlSession.close();
        return user;
    }

    @Override
    public int addUser(TbUser user) {
        //加载全局配置文件
        InputStream ips = this.getClass().getResourceAsStream("/mybatis-config.xml");
        //创建SqlSessionFactory
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(ips);
        //创建SqlSession
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //执行查询
        int count = sqlSession.insert("user.addUser", user);
        //提交事务
        sqlSession.commit();
//        sqlSession.rollback();//回滚事务
        sqlSession.close();
        return count;
    }

    @Override
    public int updateUser(TbUser user) {
        //加载全局配置文件
        InputStream ips = this.getClass().getResourceAsStream("/mybatis-config.xml");
        //创建SqlSessionFactory
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(ips);
        //创建SqlSession
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //执行查询
        int count = sqlSession.update("user.updateUser", user);
        //提交事务
        sqlSession.commit();
        sqlSession.close();
        return count;
    }

    @Override
    public int deleteUser(long id) {
        //加载全局配置文件
        InputStream ips = this.getClass().getResourceAsStream("/mybatis-config.xml");
        //创建SqlSessionFactory
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(ips);
        //创建SqlSession
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //执行查询
        int count = sqlSession.update("user.deleteUser", id);
        //提交事务
        sqlSession.commit();
        sqlSession.close();
        return count;
    }

}

  TbUser.java:

package cn.zzsxt.entity;

import java.io.Serializable;
import java.util.Date;

public class TbUser implements Serializable{
    private long id;
    private String username;
    private String sex;
    private Date birthday;
    private String address;

    public long getId() {
        return id;
    }
    public void setId(long id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public Date getBirthday() {
        return birthday;
    }
    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    @Override
    public String toString() {
        return "TbUser [id=" + id + ", username=" + username + ", sex=" + sex + ", birthday=" + birthday + ", address="
                + address + "]";
    }

}

  TbUser.xml:

<?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">
<!--
1.User.xml(原始ibatis命名),mapper代理开发的映射文件命名XxxMapper.xml
2.namespace命名空间,作用就是对sql进行分类化管理,理解sql隔离
3.注意:使用mapper代理开发,namespace有特殊的作用
 -->
<mapper namespace="user">
    <!--在映射文件中配置很多sql语句-->
    <!--需求:通过id查询用户表的记录-->
    <!--
        1.标识映射文件中的sql,将sql语句封装到mapped statement对象中,所以称为statement的id
        2.parameterType:指定输入参数类型
        3.#{}:表示一个占位符
        4.#{id}:其中的id表示接收的输入参数,参数名称就是id,如果输入参数是简单类型,#{}中的参数名可以任意,可以为value或者其他
        5.resultType:指定sql输出结果的所映射的java对象类型,select指定resultType表示将单条记录映射成的java对象
    -->
    <!-- 查询 -->
    <select id="findAll" resultType="cn.zzsxt.entity.TbUser">
        select * from tb_user
    </select>

    <select id="findUserById" parameterType="java.lang.Long" resultType="cn.zzsxt.entity.TbUser">
        select * from tb_user where id=#{id}
    </select>

    <!-- 添加 -->
    <insert id="addUser" parameterType="cn.zzsxt.entity.TbUser">
        insert into tb_user(username,sex,birthday,address) values(#{username},#{sex},#{birthday},#{address})
    </insert>

    <!-- 修改 -->
    <update id="updateUser" parameterType="cn.zzsxt.entity.TbUser">
        update tb_user set username=#{username},sex=#{sex},birthday=#{birthday},address=#{address} where id=#{id}
    </update>

    <!-- 删除 -->
    <delete id="deleteUser" parameterType="java.lang.Long">
        delete from tb_user where id=#{id}
    </delete>
</mapper>

  Test1.java:

package cn.zzsxt.demo;

import java.util.Date;
import java.util.List;

import org.junit.Test;

import cn.zzsxt.dao.TbUserDao;
import cn.zzsxt.dao.impl.TbUserDaoImpl;
import cn.zzsxt.entity.TbUser;

public class Test1 {

    @Test
    public void testFindAll(){
        TbUserDao tbUserDao = new TbUserDaoImpl();
        List<TbUser> list = tbUserDao.findAll();
        for (TbUser tbUser : list) {
            System.out.println(tbUser);
        }
    }

    @Test
    public void testFindUserById(){
        TbUserDao tbUserDao = new TbUserDaoImpl();
        TbUser user = tbUserDao.findUserById(new Long(1));
        System.out.println(user);
    }

    @Test
    public void testAddUser(){
        TbUserDao tbUserDao = new TbUserDaoImpl();
        TbUser user = new TbUser();
        user.setUsername("test");
        user.setSex("男");
        user.setBirthday(new Date());
        user.setAddress("北京");
        int count = tbUserDao.addUser(user);
        System.out.println(count);
    }

    @Test
    public void testUpdateUser(){
        TbUserDao tbUserDao = new TbUserDaoImpl();
        TbUser user = tbUserDao.findUserById(4L);
        user.setUsername("王五");
        int count =tbUserDao.updateUser(user);
        System.out.println(count);
    }

    @Test
    public void testDeleteUser(){
        TbUserDao tbUserDao = new TbUserDaoImpl();
        int count =tbUserDao.deleteUser(4L);
        System.out.println(count);
    }
}
 

  TestLog4J.java:

package cn.zzsxt.test;

import org.apache.log4j.Logger;
import org.junit.Test;

public class TestLog4J {

    Logger logger = Logger.getLogger(TestLog4J.class.getName());
    @Test
    public void test01(){
//        System.out.println("xxxx");
        logger.debug("debug....");
        logger.info("info....");
        logger.warn("warn....");
        logger.error("error....");
        logger.fatal("fatal....");
    }

    public static void main(String[] args) {
        TestLog4J test = new TestLog4J();
        test.test01();
    }

}
时间: 2024-10-13 11:28:20

java:Mybatis框架1(基本配置,log4j)的相关文章

Java Mybatis 框架入门教程

一.Mybatis介绍 MyBatis是一款一流的支持自定义SQL.存储过程和高级映射的持久化框架.MyBatis几乎消除了所有的JDBC代码,也基本不需要手工去 设置参数和获取检索结果.MyBatis能够使用简单的XML格式或者注解进行来配置,能够映射基本数据元素.Map接口和POJOs(普通java对 象)到数据库中的记录. 二.MyBatis工作流程 (1)加载配置并初始化 触发条件:加载配置文件 配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个

[Java]MyBatis框架

在这里学习 >>MyBatis学习 之 一.MyBatis简介与配置MyBatis+Spring+MySql >>WebFRK-ibatis >>mybatis(6) >>ORM框架学习(12)

Mybatis框架的简单配置

Mybatis 的配置 1.创建项目(当然,这是废话) 2.导包 下载mybatis-3.2.0版:https://repo1.maven.org/maven2/org/mybatis/mybatis/ 下载commson-dbcp :http://maven.aliyun.com/nexus/#nexus-search;quick~dbcp 下载ojdbc :http://maven.aliyun.com/nexus/#nexus-search;quick~ojdbc6 3.配置 主配置文件(

mybatis框架的相关配置

mybatis相关配置 1. 头信息 <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"> 2. 配置信息<configuration> <

java mybatis 框架下多种类型的参数传入到xml问题

由于公司要求,最近从.net向java 转,然后过程中遇到各种奇葩问题,特在此随记一番. 场景:一个方法中有两个参数,一个List的集合,一个int 类型的参数,最初我在xml的sql参数,无论定义成List还是int都报错,其实仔细一想就能明白,接口方法中定义了两个类型的参数,所以你XML中的参数类型无论定义成什么都是不对的. 原始写法: //========================这个例子是原始错误写法的例子===========Start void batchUpdateUrget

MyBatis 源码分析——配置信息

MyBatis框架的启动前期需要加载相关的XML配置信息.从官网上我们可以了解到他具有十几个节点.其中笔者认为比较重要的节点是settings节点.properties节点.environments节点. transactionManager节点.至于相关的作用到官网看过一篇都会明白. MyBatis框架的XML配置到底有几个节点,这个必须去查看一下相关的DTD文件才行.DTA文件就在包名为org.apache.ibatis.builder.xml的下面.由于显示的问题笔者只复制出部分来. <?

Mybatis框架

1.Mybatis框架: Mybatis是一个半自动的对象关系映射(ORM),实现结果集的自动封装,sql写到配置文件中: Mybatis使用的是DTD约束. 2.Mybatis模块调用: 3.SqlMapConfig.xml :Mybatis框架的核心配置. default="MySql"---> 默认使用MySQL数据库 映射配置中的resource=""--> 单个对象的映射文件 1 <?xml version="1.0"

springboot配置Log4j(将输出日志打印在控制台)

在springboot整合mybatis开发过程中,配置Log4j文件以便查看Mybatis操作数据库的过程 编辑器:IDEA 第一步:pom.xml中引入依赖(mybatis依赖和log4j2依赖) 如下: #在spring-boot-starter-web中自动配置了logging依赖,在使用Log4j时需要先排除其依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId&g

java日志框架slf4j与log4j的使用与配置

日志记录自然是非常重要的,但恐怕能记住slf4j与log4j等日志框架配置的人就很少了,这个东西不难,只是配置好后很少会去动它,开发新项目一般也是从其他项目拷贝,或者参照文档 废话不多说,先说log4j,使用log4j只要简单的几步 首先,弄到log4j的jar包,maven工程配置以下依赖就行,或者,从阿里的maven仓库下载jar包,添加到工程的"build path" <dependency> <groupId>log4j</groupId>

MyBatis框架中Mapper映射配置的使用及原理解析(三) 配置篇 Configuration

从上文<MyBatis框架中Mapper映射配置的使用及原理解析(二) 配置篇 SqlSessionFactoryBuilder,XMLConfigBuilder> 我们知道XMLConfigBuilder调用parse()方法解析Mybatis配置文件,生成Configuration对象. Configuration类主要是用来存储对Mybatis的配置文件及mapper文件解析后的数据,Configuration对象会贯穿整个Mybatis的执行流程,为Mybatis的执行过程提供必要的配