log4j、Mybatis、mysql驱动
log4j.properties 配置文件代码
<?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> //环境可以配置多个,在default中修改即可 <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> //数据源用的较多的是druid,在此使用的是默认的连接池 <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/jiege" /> <property name="username" value="root" /> <property name="password" value="293476" /> </dataSource> </environment> </environments> <mappers> <mapper resource="com/jiege/mapper/StudentMapper.xml" /> </mappers> </configuration> ========================================================================== # Global logging configuration log4j.rootLogger=DEBUG, stdout # MyBatis logging configuration... log4j.logger.org.mybatis.example.BlogMapper=TRACE # 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码片domain(领域模型)、mapper(映射配置)、test(测试类) 一个domain对应一个mapper.xml domain代码
package com.jiege.domain; public class Student { private String id; private String name; private int age; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Student{" + "id='" + id + '\'' + ", name='" + name + '\'' + ", age=" + age + '}'; } }Student-mapper.xml在这个文件中写sql
<?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映射文件使用mapperspace来区分 --> <mapper namespace="test1"> <!-- <insert> <update> <delete> <select> --> <select id="getById" parameterType="java.lang.String" resultType="com.jiege.domain.Student"> select * from tbl_Student where id=#{id} </select> <!-- 如果返回的是多条记录,应该返回的是集合的泛型 select中 id必须写 parameterType可以不写 resultType必须写 对于其他的3个标签, id必须写,但是 parameterType可以不写 resultType可以不写 --> <select id="getAll" resultType="com.jiege.domain.Student"> select * from tbl_Student </select> <insert id="save" > insert into tbl_Student(id,name,age) values(#{id},#{name},#{age}) </insert> </mapper>测试
package com.jiege.test; import com.jiege.domain.Student; 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.util.List; public class Test { public static void main(String[] args) { String resource = "mybatis-config.xml"; InputStream inputStream = null; try { inputStream = Resources.getResourceAsStream(resource); } catch (IOException e) { e.printStackTrace(); } SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session=sqlSessionFactory.openSession(); /** * 需求根据id查单条 * 参数1:根据命名空间.sqlId的形式找到我们需要使用的sql语句 * 参数2:我们要为sql语句中传递的参数 */ Student s=session.selectOne("test1.getById","A0001"); System.out.println(s); //session.close(); //查询学生信息表的所有记录 List<Student> slist=session.selectList("test1.getAll"); for (Student student:slist ) { System.out.println(student); } //session.close(); //添加操作 Student s1=new Student(); s1.setId("A0004"); s1.setName("蔡徐坤"); s1.setAge(50); session.insert("test1.save",s1); session.commit(); session.close(); //默认手动提交事务 } }