java mybatis配置,mybatis配置——Java版

jar包依赖

1.mysql-connector-java-5.1.44.jar

2.mybatis-3.4.5.jar

3.log4j-1.2.17.jar

mybatis-config.xml

1.首先引入dtd 使xml增加提示功能

/p>

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

mybatis多环境配置,这里使用的事务管理是jdbc ,datasource 类型为POOLED ,${driver} 引入外部properties里面的属性

数据源 type说明

0140c0c7dd54?tdsourcetag=s_pcqq_aiomsg

image.png

3.配置外部properties更灵活,resource默认搜索 src目录

4.新建映射文件 在里面写sql语句,在src目录下创建个mapper包 在里面放映射xml

引入

这里的namespace是添加的java映射接口类

5.创建一个返回类型map,数据库所有字段 , 想在 type中直接用User 需要在configxml中配置别名 请看8.

property是User模型类的字段, column 是数据库中的字段

6.插入语句

insert into user(uname) values (#{uname})

7.定义接口类

package com.interface1;

import java.util.List;

import com.model.User;

public interface UserMapper {

public int insertUser(User user);

public int updateUser(User user);

public int deleteUser(Integer id);

public User selectUserById(Integer id);

public List selectAllUser();

}

8.定义别名,映射文件中直接可以用别名。

9.在config.xml中配置所有映射文件位置

10.配置log4j

### 设置###

log4j.rootLogger = debug,stdout,D,E

### 输出信息到控制抬 ###

log4j.appender.stdout = org.apache.log4j.ConsoleAppender

log4j.appender.stdout.Target = System.out

log4j.appender.stdout.layout = org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

### 输出DEBUG 级别以上的日志到=E://logs/error.log ###

log4j.appender.D = org.apache.log4j.DailyRollingFileAppender

log4j.appender.D.File = E://logs/log.log

log4j.appender.D.Append = true

log4j.appender.D.Threshold = DEBUG

log4j.appender.D.layout = org.apache.log4j.PatternLayout

log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

### 输出ERROR 级别以上的日志到=E://logs/error.log ###

log4j.appender.E = org.apache.log4j.DailyRollingFileAppender

log4j.appender.E.File =E://logs/error.log

log4j.appender.E.Append = true

log4j.appender.E.Threshold = ERROR

log4j.appender.E.layout = org.apache.log4j.PatternLayout

log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

11.测试类

public static void main(String[] args) {

Logger log = LogManager.getLogger(Test.class);

String resource = "mybatis.xml";

InputStream is = null;

try {

is = Resources.getResourceAsStream(resource);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

SqlSessionFactory sf = new SqlSessionFactoryBuilder().build(is);

SqlSession session = sf.openSession();

UserMapper umapper = session.getMapper(UserMapper.class);

User user = new User();

user.setUname("ad");

umapper.insertUser(user);

session.close();

}

完整

配置文件结构

MyBatis 配置文件的 configuration 标签主要包括:

configuration 配置

properties 属性

settings 设置

typeAliases 类型命名

typeHandlers 类型处理器

objectFactory 对象工厂

plugins 插件

environments 环境

environment 环境变量

transactionManager 事务管理器

databaseIdProvider 数据库厂商标识

mappers 映射器

在配置文件中,值包含了最基本的 typeAliases 类型命名、 environments 环境和 mappers 映射器。

settings 设置

settings 是 MyBatis 极为重要的设置,它们会改变 MyBatis 的运行时行为,如开启二级缓存、开启延迟加载等。

mappers 映射器

mappers 用于引用已经定义好的映射文件,告诉 MyBatis 去哪寻找映射 SQL 的语句。常见的方法:

(1)通过 resource 加载单个映射文件

(2)通过完全限定资源定位符(绝对路径前加上"file:///")加载单个映射文件

(3)通过 mapper 接口对象加载单个映射文件

(4)通过 mapper 接口包加载整个包的映射文件

注:(3)和(4)中需要将 mapper 接口类名和 mapper.xml 映射文件名称保持一致,且在一个目录中,如:

注解

0140c0c7dd54?tdsourcetag=s_pcqq_aiomsg

image.png

例子

package shiyanlou.mybatis.annotation.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Delete;

import org.apache.ibatis.annotations.Insert;

import org.apache.ibatis.annotations.Options;

import org.apache.ibatis.annotations.Param;

import org.apache.ibatis.annotations.Result;

import org.apache.ibatis.annotations.Results;

import org.apache.ibatis.annotations.Select;

import org.apache.ibatis.annotations.Update;

import shiyanlou.mybatis.annotation.model.User;

public interface UserMapper {

/*

* 新增用戶

* @param user

* @return

* @throws Exception

*/

@Insert("insert into user(name,sex,age) values(#{name},#{sex},#{age})")

@Options(useGeneratedKeys=true,keyProperty="id")

public int insertUser(User user) throws Exception;

/*

* 更新用戶

* @param user

* @throws Exception

*/

@Update("update user set age=#{age} where id=#{id}")

public void updateUser(User user) throws Exception;

/*

* 删除用戶

* @param id

* @return

* @throws Exception

*/

@Delete("delete from user where id=#{user_id}")

public int deleteUser(@Param("user_id") Integer id) throws Exception;

/*

* 根据id查询用戶

* @param id

* @return

* @throws Exception

*/

@Select("select * from user where id=#{id}")

@Results({

@Result(id=true,property="id",column="id"),

@Result(property="name",column="name"),

@Result(property="sex",column="sex"),

@Result(property="age",column="age"),

})

public User selectUserById(Integer id) throws Exception;

/*

* 查询所有用戶

* @return

* @throws Exception

*/

@Select("select * from user")

public List selectAllUser() throws Exception;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值