1、创建项目 导入jar包
创建包目录如下
这里 com.dongline.mybatistest包存放的java代码,
config存放的全局配置文件和映射文件
2、编写核心配置文件 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>
<!-- 全局配置文件 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/store? characterEncoding=utf-8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
</configuration>
3、编写实体类,以及创建相对应的表结构
package com.dongline.mybatistest;
public class Person {
String personname;
String persongpassword;
int persongid;
String personmail;
@Override
public String toString() {
return "Person [personname=" + personname + ", persongpassword=" + persongpassword + ", persongid=" + persongid
+ ", personmail=" + personmail + "]";
}
public String getPersonname() {
return personname;
}
public void setPersonname(String personname) {
this.personname = personname;
}
public String getPersongpassword() {
return persongpassword;
}
public void setPersongpassword(String persongpassword) {
this.persongpassword = persongpassword;
}
public int getPersongid() {
return persongid;
}
public void setPersongid(int persongid) {
this.persongid = persongid;
}
public String getPersonmail() {
return personmail;
}
public void setPersonmail(String personmail) {
this.personmail = personmail;
}
}
4、编写映射文件(mapper)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<!-- 映射文件 -->
<mapper namespace="test">
<select id="findPersonByName" resultType="com.dongline.mybatistest.Person" parameterType="java.lang.String">
select * from person where personname=#{id}
</select>
</mapper>
注意:
- 这里id是我们调用这个select的唯一标识。
- resultTpye是这个查询语句结果所对应的单个对象类型(当查询结果为List时每个结果的类型)
- parameterType是输入类型我们看到sql语句中的personname=#{id} #{id}所对应的类型
- 其中#{}代表一个输入参数(是防sql注入的)
5、我们映射文件配置好了但是没有与jdbc关联,这里就需要mybatis来关联我们的映射文件
在全局配置文件( mybatis-config.xml)中添加
<mappers>
<mapper resource="config/person.xml"/>
</mappers>
就实现了映射文件的配置
mappers可以添加多个mapper那就意味着可以用这一个配置文件关联多个映射文件
6、用mybatis来实现查询数据库
在com.dongline.mybatistest下新建一个测试类Test.java
package com.dongline.mybatistest;
import java.io.IOException;
import java.io.InputStream;
import javax.annotation.Resource;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class Test {
public static void main(String[] args) throws Exception {
String resource="config/mybatisconfig.xml";
//通过Resources.getResourceAsStream(resource)获取resource输入流
InputStream in= Resources.getResourceAsStream(resource);
//获取SqlSession工厂,这个是会话工厂。
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(in);
//建立我们的会话 session
SqlSession session=factory.openSession();
//通过会话session中的增删改查关联我们映射文件中配置的id就能调用我们的sql语句了。
// 第一个参数为id,第二个为参数
Person person=session.selectOne("test.findPersonByName","dong");
System.out.println(person);
session.commit();
session.close();
}
}
第二种方式:不用写实现类
StudentMapper.xml
参数表和参数类型要和接口保持一致,id要和接口里的方法保持一致
<mapper namespace="com.mybatis.mapper.StudentMapper>
<insert id="findPersonByName" resultType="com.dongline.mybatistest.Person" parameterType="java.lang.String"> </insert>
</mapper>
实现类去掉
测试类
package com.dongline.mybatistest;
import java.io.IOException;
import java.io.InputStream;
import javax.annotation.Resource;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class Test {
public static void main(String[] args) throws Exception {
String resource="config/mybatisconfig.xml";
//通过Resources.getResourceAsStream(resource)获取resource输入流
InputStream in= Resources.getResourceAsStream(resource);
//获取SqlSession工厂,这个是会话工厂。
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(in);
//建立我们的会话 session
SqlSession session=factory.openSession();
Student student = new Student();
student.setUsername("rose");
student.setPassword("888");
StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);
studentMapper.insertStudent(student);
session.commit();
session.close();
}
}
全局配置文件
修改mapper.xml文件的位置
注意:
全局配置文件通过配置找到mapper文件,mapper文件通过绑定对应的接口找到对应的类,也能够创建代理类了
个性签名:一个人在年轻的时候浪费自己的才华与天赋是一件非常可惜的事情
如果觉得这篇文章对你有小小的帮助的话,记得在左下角点个“👍”哦,博主在此感谢!
万水千山总是情,打赏5毛买辣条行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!