1.新建一个java工程(dt45_mybatis2); 然后在项目下面建立一个lib文件用来放jar包(包括两个jar包:mybatis-3.4.4.jar和mysql-connector-java-5.1.43.jar),然后右键Build Path; 然后建立一个source folder(-resource)。
2、在source里面建立mybatis.xml(alt+"/“快速生成)。 然后在mybatis.xml中改数据库名和局部配置文件路径(这里要先建立局部配置文件才能够修改,后来为/dt45_mybatis2/src/cn/java/dao/impl/CpDaoImpl.xml)。
3、然后在src里面建立cn.java.dao.impl的package包(再建立CpDaoImpl.java和CpDaoImpl.xml的局部配置文件)、cn.java.entity(Cp.java—这个是因为一条记录既可以用map来装也可以用javabean来装,所以定义了这样的一个javabean用来装一条记录;;多条记录的时候用LIst来装)。

第一步:写mybatis.xml——主配置文件(alt+”/")
第二步:写CpDaoImpl.xml——局部配置文件(alt+"/")——里面的select id和resultType需要等到dao层的java类写完才可以补充
第三部:写CpDaoImpl.java——查询所有菜品信息,步骤是:
(SqlSession–>SqlSessionFactory–>SqlSessionFactoryBuilder)
(1、得到SqlSessionFactoryBuilder对象 2、将mybatis.xml变成inputStream流 3.得到SqlSession 4、调用局部配置文件中的sql语句 //namespace+"."+id)
下面代码是:mybatis.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>
<!-- 配置数据库连接环境:driver、url、username、password -->
<environments default="mysql">
<!-- 开始配置mysql -->
<environment id="mysql">
<!--配置事务 -->
<transactionManager type="JDBC"></transactionManager>
<!-- 配置数据源 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql:///dt55"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!-- 关联局部配置文件 -->
<mappers>
<mapper resource="cn/java/dao/impl/CpDaoImpl.xml"/>
</mappers>
</configuration>
下面代码是Cp.java
package cn.java.entity;
import java.io.Serializable;
public class Cp implements Serializable{
/**
* 这里按住Ctrl点一下小灯,点第二行,就可以得到下面的唯一的id,序列化
*/
private Long id;
private String foodName;
private String taste;
private Float price;
private String description;
private String imgPath;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getFoodName() {
return foodName;
}
public void setFoodName(String foodName) {
this.foodName = foodName;
}
public String getTaste() {
return taste;
}
public void setTaste(String taste) {
this.taste = taste;
}
public Float getPrice() {
return price;
}
public void setPrice(Float price) {
this.price = price;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getImgPath() {
return imgPath;
}
public void setImgPath(String imgPath) {
this.imgPath = imgPath;
}
@Override
public String toString() {
return "Caipin [id=" + id + ", foodName=" + foodName + ", taste=" + taste + ", price=" + price
+ ", description=" + description + ", imgPath=" + imgPath + "]";
}
}
下面代码是:CpDaoImpl.java
package cn.java.dao.impl;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.reflection.wrapper.BaseWrapper;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import cn.java.entity.Cp;
public class CpDaoImpl {
/*查询菜品信息*/
@Test
public void getCpById()throws Exception{
SqlSessionFactoryBuilder ssfb=new SqlSessionFactoryBuilder();
InputStream ins =Resources.getResourceAsStream("mybatis.xml");
SqlSessionFactory factory=ssfb.build(ins);
SqlSession session=factory.openSession();
//调用相应的sql语句
Cp cp=session.selectOne("cn.java.dao.impl.CpDaoImpl.getCpById");
System.out.println(cp);
}
}
下面代码是:CpDaoImpl.xml
<?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">
<!--
namespace:命名空间,其值为某一个dao层类的具体路径
-->
<mapper namespace="cn.java.dao.impl.CpDaoImpl">
<!-- sql语句保存在Mybatis的局部配置文件中 -->
<!--
select标签存放查询语句(List<User>)
id:在整个配置文件中id值必须唯一,其值与dao层类中的方法名保持一致
resultType:指定当前sql查询语句返回的数据类型。类型不是为sql语句的最终类型,而是某一条数据的类型
-->
<select id="getCpById" resultType="cn.java.entity.Cp">
SELECT * FROM caipin WHERE id=23
</select>
</mapper>





本文详细介绍了如何在Java项目中整合MyBatis框架,包括创建工程、配置数据库连接、编写实体类、DAO实现类及XML映射文件,通过具体代码示例展示了查询菜品信息的过程。

被折叠的 条评论
为什么被折叠?



