作者:飞儿gxj_505 | 来源:互联网 | 2023-05-29 17:04
MybatisCRUD实例实例的开发环境java环境开发工具数据库jdk1.7myeclipsemysql项目的目录结构log4j.properties配置Log4j是Apac
Mybatis CRUD实例
实例的开发环境 java环境 开发工具 数据库 jdk1.7 myeclipse mysql
项目的目录结构
log4j.properties配置 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIXSyslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。 此外,通过Log4j其他语言接口,您可以在C、C++、.Net、PL/SQL程序中使用Log4j,其语法和用法与在Java程序中一样,使得多语言 分布式系统得到一个统一一致的日志组件模块。而且,通过使用各种第三方扩展,您可以很方便地将Log4j集成到J2EE、JINI甚至是SNMP应用中。想要详细了解的话可以看看下面的博客:log4j.properties 详解与配置步骤。在本项目中的配置:
# Global logging configuration #在开发环境下日志要设置成Debug,生产环境设置成info或error log4j.rootLogger=DEBUG, stdout # Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
SqlMapConfig.xml的配置
这是一个关键的配置文件,是mybaits的全局配置文件,不过名称不固定,主要是用来配置数据源、事务等,mybaits的运行环境。
PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
创建POJO类 package cn.itcast.mybatis.po;import java.util.Date;public class User {private int id;private String username;// 用户姓名private String sex;// 性别private Date birthday;// 生日private String address;// 地址public int getId() {return id;}public void setId(int 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;}@Overridepublic String toString() {return "User [id=" + id + ", username=" + username + ", sex=" + sex+ ", birthday=" + birthday + ", address=" + address + "]";}}
映射文件 映射文件的命名最好规范统一下,本实例中命名为User.xml载映射文件中配置sql语句。
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">select * from user where id = #{id} select * from user where username like '%${value}%' select LAST_INSERT_ID() insert into user(username,birthday,sex,address) values(#{username},#{birthday},#{sex},#{address})delete from user where id=#{id} update user set username=#{username},birthday=#{birthday},sex=#{sex},address=#{address} where id=#{id}
并在SqlMapConfig.xml文件中加载映射文件
具体代码实现 接下来就是具体的代码实现了,在MybatisFirst类中:
package cn.itcast.mybatis.first;import java.io.IOException; import java.io.InputStream; import java.util.Date; import java.util.List;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 org.junit.Before; import org.junit.Test;import cn.itcast.mybatis.po.User;public class MybatisFirst {//创建会话工厂private SqlSessionFactory sqlSessionFactory;@Beforepublic void createSqlSessionFactory() throws IOException{//配置文件String resource="SqlMapConfig.xml";//得到配置文件流InputStream inputStream=Resources.getResourceAsStream(resource);// 使用SqlSessionFactoryBuilder从xml配置文件中创建SqlSessionFactorysqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);}@Testpublic void findUserByIdTest() throws IOException{SqlSession sqlSession=null;try {//创建数据库会话实例sqlSession=sqlSessionFactory.openSession();//根据用户ID查询单个记录User user=sqlSession.selectOne("test.findUserById", 1);System.out.println(user);} catch (Exception e) {e.printStackTrace();} finally {if (sqlSession != null) {sqlSession.close();}}}@Testpublic void findUserByUsername() throws IOException{SqlSession sqlSession=null;try {//创建数据库会话实例sqlSession=sqlSessionFactory.openSession();//根据用户名查询多条记录List list=sqlSession.selectList("test.findUserByUsername","张");System.out.println(list);} catch (Exception e) {e.printStackTrace();} finally {if (sqlSession != null) {sqlSession.close();}}}@Testpublic void testInsert(){SqlSession sqlSession=null;try {sqlSession=sqlSessionFactory.openSession();User user=new User();user.setAddress("廊坊市广阳区");user.setBirthday(new Date());user.setSex("1");user.setUsername("张令");sqlSession.insert("test.insertUser",user);//提交事务sqlSession.commit();} catch (Exception e) {e.printStackTrace();}finally{if(sqlSession!=null){sqlSession.close();}}}@Testpublic void testDelete(){SqlSession sqlSession=null;try {sqlSession=sqlSessionFactory.openSession();sqlSession.delete("test.deleteUserById",29);//提交事务sqlSession.commit();} catch (Exception e) {e.printStackTrace();}finally{if(sqlSession!=null){sqlSession.close();}}}@Testpublic void testUpdate(){SqlSession sqlSession=null;try {sqlSession=sqlSessionFactory.openSession();User user=new User();user.setId(26);user.setAddress("河北省南宫市");user.setBirthday(new Date());user.setSex("男");user.setUsername("令仔");sqlSession.update("test.updateUser",user);//提交事务sqlSession.commit();} catch (Exception e) {e.printStackTrace();}finally{if(sqlSession!=null){sqlSession.close();}}}}