Spring JDBC与事务管理 作业1-5
来源:1-5 自由编程
rudtjd
2023-03-06 14:08:31
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/jdbc_imooc?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true"/> <property name="username" value="root"/> <property name="password" value="root"/> </bean> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"/> </bean> <bean id="hotelDao" class="com.imooc.spring.jdbc.dao.HotelDao"> <property name="jdbcTemplate" ref="jdbcTemplate"/> </bean> </beans>
package com.imooc.spring.jdbc.entity;
import java.util.Date;
public class Hotel {
private Integer orderNO;
private String city;
private Float price;
private String hotelname;
private Date arriveDate;
private Date leaveDate;
@Override
public String toString() {
return "Hotel{" +
"orderNO=" + orderNO +
", city='" + city + '\'' +
", price=" + price +
", hotelname='" + hotelname + '\'' +
", arriveDate=" + arriveDate +
", leaveDate=" + leaveDate +
'}';
}
public Integer getOrderNO() {
return orderNO;
}
public void setOrderNO(Integer orderNO) {
this.orderNO = orderNO;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public Float getPrice() {
return price;
}
public void setPrice(Float price) {
this.price = price;
}
public String getHotelname() {
return hotelname;
}
public void setHotelname(String hotelname) {
this.hotelname = hotelname;
}
public Date getArriveDate() {
return arriveDate;
}
public void setArriveDate(Date arriveDate) {
this.arriveDate = arriveDate;
}
public Date getLeaveDate() {
return leaveDate;
}
public void setLeaveDate(Date leaveDate) {
this.leaveDate = leaveDate;
}
}package com.imooc.spring.jdbc.dao;
import com.imooc.spring.jdbc.entity.Hotel;
import javafx.geometry.HPos;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import javax.swing.plaf.synth.SynthToolTipUI;
import java.util.List;
public class HotelDao {
private JdbcTemplate jdbcTemplate;
public JdbcTemplate getJdbcTemplate() {
return jdbcTemplate;
}
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
// 1.查询订单号为****的订单信息
public Hotel findById(Integer orderno){
String sql = " select * from hotel where orderno=?";
Hotel id = jdbcTemplate.queryForObject(sql, new Object[]{orderno}, new BeanPropertyRowMapper<Hotel>(Hotel.class));
return id;
}
// 2.查询city订单信息
public List<Hotel> findByCity(String city){
String sql = " select * from hotel where city=? ";
List<Hotel> list = jdbcTemplate.query(sql, new Object[]{city}, new BeanPropertyRowMapper<Hotel>(Hotel.class));
return list;
}
// 3.向表格中插入一条数据
public void insert(Hotel hotel){
String sql = " insert into hotel(orderno,city,price,hotelname,arrivedate,leavedate) values(?,?,?,?,?,?)";
jdbcTemplate.update(sql,new Object[]{
hotel.getOrderNO(),hotel.getCity(),hotel.getPrice(),hotel.getHotelname(),hotel.getArriveDate(),hotel.getLeaveDate()
});
}
// 4.更新表格数据
public int update(Hotel hotel){
String sql = "update hotel set arrivedate=?,leavedate=? where orderno=?";
int count = jdbcTemplate.update(sql, new Object[]{
hotel.getArriveDate(), hotel.getLeaveDate(), hotel.getOrderNO()
});
return count;
}
// 5.将订单号为10005的订单删除
public int delete(Integer orderno){
String sql = "delete from hotel where orderno=?";
return jdbcTemplate.update(sql,new Object[]{orderno});
}
}import com.imooc.spring.jdbc.dao.HotelDao;
import com.imooc.spring.jdbc.entity.Hotel;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import javax.annotation.Resource;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.List;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:applicationContext.xml"})
public class JdbcTemplateTestor {
@Resource
private HotelDao hotelDao;
// 1.查询订单号为10001的订单信息
@Test
public void testFindById(){
Hotel hotel = hotelDao.findById(10001);
System.out.println(hotel);
}
// 2.查询上海市的订单信息
@Test
public void testFindCity(){
List<Hotel> city = hotelDao.findByCity("上海");
System.out.println(city);
}
// 3.向表格中插入一条数据
@Test
public void testInsert() throws ParseException {
String ArrDate = "2015-05-08";
String LeDate = "2015-05-11";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Hotel hotel = new Hotel();
hotel.setOrderNO(10005);
hotel.setCity("北京");
hotel.setPrice(588f);
hotel.setHotelname("酒店5");
hotel.setArriveDate(simpleDateFormat.parse(ArrDate));
hotel.setLeaveDate(simpleDateFormat.parse(LeDate));
hotelDao.insert(hotel);
}
// 4.修改订单号为10003的到达时间改为2020-4-30,离开时间改为2020-5-3
@Test
public void testUpdate() throws ParseException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
String date1 = "2020-04-30";
String date2 = "2020-05-03";
Hotel hotel = hotelDao.findById(10003);
hotel.setArriveDate(simpleDateFormat.parse(date1));
hotel.setLeaveDate(simpleDateFormat.parse(date2));
int count = hotelDao.update(hotel);
System.out.println("本次更新了"+count+"条消息");
}
// 5.将订单号为10005的订单删除
@Test
public void testDelete(){
int count = hotelDao.delete(10005);
System.out.println("本次删除了"+count+"条消息");
}
}1回答
同学你好,测试同学代码已完成练习,棒棒哒!继续加油!
祝学习愉快!
相似问题