mybatis入门实操--(配置遇到问题--解决问题)

mybatis入门实操–(配置遇到问题–解决问题)

碎碎念–

花了一点时间,终于把mybatis给整入门了—自学还是比较费时间的

话不多说哦–直接开干
先来张数据表
在这里插入图片描述

建立表的时候可以参考多种方式,可以再cmd界面,也可以用其他工具怎么方便怎么来,初学者最好是在cmd界面因为可以练习sql语句;

整java代码–

因为要跟数据库中的表打交道,所以要先建立一个跟数据库列名和数据类型一样的,一个是为了方便写代码,另一个避免运行的时候会有数据类型不兼容的问题出现;

package charpter0619.one.next;
public class Animal {
private Integer animal_ID;
private String animal_type;
private String animal_name;
private float animal_price;
private Integer animal_num;
public Integer getAnimal_ID() {
	return animal_ID;
}
public void setAnimal_ID(Integer animal_ID) {
	this.animal_ID = animal_ID;
}
public String getAnimal_type() {
	return animal_type;
}
public void setAnimal_type(String animal_type) {
	this.animal_type = animal_type;
}
public String getAnimal_name() {
	return animal_name;
}
public void setAnimal_name(String animal_name) {
	this.animal_name = animal_name;
}
public float getAnimal_price() {
	return animal_price;
}
public void setAnimal_price(float animal_price) {
	this.animal_price = animal_price;
}
public Integer getAnimal_num() {
	return animal_num;
}
public void setAnimal_num(Integer animal_num) {
	this.animal_num = animal_num;
}
@Override
public String toString() {
	return "Animal [animal_ID=" + animal_ID + ", animal_type=" + animal_type + ", animal_name=" + animal_name
			+ ", animal_price=" + animal_price + ", animal_num=" + animal_num + "]";
}

}
//类中要有属性--与数据库中表的列名相对应(包括列名和数据类型),再就是setter和getter方法,还要覆写一个toString,还好eclipse提供了便捷的方式;

整mybatis–先整配置文件,在src根目录下新建log4j.properties文件,文件内容如下

#全局日志配置
#Global logging configuration
log4j.rootLogger=ERROR, stout
#MyBatis logging configuration...
#这里指定了将某包下所有的日志记录级别记录为DEBUG
log4j.logger.charpter0619.one=DEBUG
#控制台输出
Console output...
log4j.appender.stout=org.apache.log4j.ConsoleAppender
log4j.appender.stout.layout=org.apache.log4j.PatternLayout
log4j.appender.stout.layout.ConversionPattern=%5p [%t] - %m%n

接口–

package charpter0619.one;
import java.io.IOException;
//接口,定义涨价和降价的动物
public interface AnimalManger {
public void Transfer(String animalout,String animalin,float price );
public void FindAnimalById()throws IOException;
}

接口实现类–

package charpter0619.one.next;

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;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Controller;

import org.springframework.transaction.annotation.Transactional;

import charpter0619.one.AnimalManger;

@Controller("manageAimal") // 控制层
public class ManageAnaimal implements AnimalManger {
	@Resource(name = "jdbcTemplate") // 注入
	private JdbcTemplate jdbcTemplate;

	public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
		this.jdbcTemplate = jdbcTemplate;
	}
	@Resource(name = "animal") // 注入
	private Animal animal;
	public void setAnimal(Animal animal) {
		this.animal = animal;
	}
@Transactional//事务管理,
	@Override
	public void Transfer(String animalout, String animalin, float price) {// 赠送动物
		String sql = "update animalshop set animal_price=animal_price+? where animal_name=?";
		this.jdbcTemplate.update(sql, price, animalin);
		System.out.println(animalin + "--涨价成功");
		String parm = "update animalshop set animal_price=animal_price-? where animal_name=?";
		this.jdbcTemplate.update(parm, price, animalout);
		System.out.println(animalout + "--降价成功");

	}
//这个是接口实现方法--查找动物信息
@Override
public void FindAnimalById() throws IOException {
//	String sql ="select * from animalshop where animal_id=id ";
//	RowMapper<Animal> rowMapper=new BeanPropertyRowMapper<Animal>(Animal.class);
//	读取配置文件
	String resource="mybatis-config.xml";
	InputStream inputStream=Resources.getResourceAsStream(resource);
	//格局配置文件构建SqlSesionFactory实例
	SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
	//通过SqlSessionFactory获得SqlSession实例
	SqlSession sqlSession=sqlSessionFactory.openSession();
	//sqlSession执行映射文件中的sql并返回结果
	Animal animal=sqlSession.selectOne("chapter0619.mapper.AnimalMapper.FindAnimalById", 1001);
	//打印输出结果
System.out.println(animal.toString());
//关闭sqlSession
sqlSession.close();
}
}

接着配置其他xml文件
在src目录下新建一个包用于存放映射空间–在该包下建立 (类名+Mapper.xml例如本例子就是AnimalMapper.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">

<!-- 定义映射空间 -->
<mapper namespace="chapter0619.mapper.AnimalMapper">
	<!-- 根据动物编号来获取动物信息 -->
	<!--定义sql语句的参数名,参数类型以及返回值类型,这里返回值是Animal类型,这根前面提到的animal类型的属性要跟数据表中列一一对应-->
		<select id="FindAnimalById"  parameterType="Integer" resultType="charpter0619.one.next.Animal">
		select * from animalshop where animal_ID=#{id}
	</select>
	<!--#{}表示一个占位符,#{id}表示该占位符接收的参数名称为id-->
</mapper>

以上都配置好之后,要配置关于mybatis的配置文件,
在src目录下创建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>

	<!--1.配置环境,默认的环境id为mysq1 -->

	<environments default="mysql">

		<!--1.2配置id为mysql的数据库环境 -->

		<environment id="mysql">

			<!--使用JDBC的事务管理 -->

			<transactionManager type="JDBC" />

			<!--数据库连接池 -->

			<dataSource type="POOLED">

				<property name="driver" value="com.mysql.cj.jdbc.Driver" />

				<property name="url"
					value="jdbc:mysql://localhost:3306/company?serverTimezone=UTC" />
				<property name="username" value="root" />
<!--这里依然要加serverTimezone=UTC,不然也会提示时区错误-->
				<property name="password" value="955945" />

				</dataSource>

			</environment>

	</environments>

	<!-- 2.配置Mapper的位置 -->

	<mappers>

		<mapper resource="chapter0619/mapper/AnimalMapper.xml" />

	</mappers>

</configuration>

测试类

package charpter0619.one;
import java.io.IOException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
	public static void main(String[] args) throws IOException {
		ApplicationContext app = new ClassPathXmlApplicationContext("NewFile.xml");
		AnimalManger animal =(AnimalManger)app.getBean("managerAnimal");
		animal.Transfer("小刚","小花", 100.5f);
		animal.FindAnimalById();
	}

}

在这里插入图片描述在这里插入图片描述这是文件目录

以上就是mybatis入门操作;
具体思路就是–
新建类,对应数据库中表中列名,在类中要写setter,getter方法以便获得数据,
配置xml
配置properties配置文件
写方法来查询数据
最后测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodeMartain

祝:生活蒸蒸日上!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值