1.首先导入jar包
log4j、Mybatis、mysql驱动
2.在根目录下创建Mybatis-config.xml配置文件
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码片
3.在src下创建三个包
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();
//默认手动提交事务
}
}