JdbcTemplate在Spring中的应用

本文详细介绍了如何在Spring框架下创建并配置数据库连接,实现与数据库的交互,包括创建表、插入测试数据,并通过接口实现用户数据的查询和展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JdbcTemplate在Spring中的应用 - 398198920 - 冰冻三尺非一日之寒

提示:需要向tbl_user表中加入数据测试

sql语句如下:

 create table tbl_customer(
 customer_no int not null,
 customer_name varchar(300) null,
 constraint pk_tbl_customer primary key(customer_no));
 
 create table tbl_order(
 order_no int not null,
 product_no int null,
 puser_no int null,
 customer_no int null,
 order_quantity int null,
 transaction_price float null,
 constraint pk_tbl_order primary key(order_no));
 
create table tbl_product(
product_no int not null,
product_name varchar(300) null,
product_img varchar(300) null,
product_type int null,
constraint pk_tbl_product primary key(product_no));

create table tbl_user(
puser_no int not null,
puser_name varchar(100) null,
puser_level int null,
constraint pk_tbl_user primary key(puser_no));

alter table tbl_order
add constraint pk_tbl_order_reference_tbl_prod foreign key(product_no)
references tbl_product(product_no)

alter table tbl_order
add constraint pk_tbl_order_reference_tbl_user foreign key(puser_no)
references tbl_user(puser_no)

alter table tbl_order
add constraint pk_tbl_order_reference_tbl_customer foreign key(customer_no)
references tbl_customer(customer_no)

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

 <bean id="dataSource"
  class="org.apache.commons.dbcp.BasicDataSource" abstract="false"
  singleton="true" lazy-init="default" autowire="default"
  dependency-check="default">
  <property name="driverClassName">
   <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
  </property>
  <property name="url">
   <value>jdbc:sqlserver://localhost:1433;databaseName=sell</value>
  </property>
  <property name="username">
   <value>sa</value>
  </property>
  <property name="password">
   <value></value>
  </property>
 </bean>
 
 <bean id="jdbcTemplate"
  class="org.springframework.jdbc.core.JdbcTemplate" abstract="false"
  singleton="true" lazy-init="default" autowire="default"
  dependency-check="default">
  <property name="dataSource">
   <ref bean="dataSource" />
  </property>
 </bean>
 
 <bean id="userOimpl"
  class="com.studyspring.ch6.UserDAOImpl" abstract="false"
  singleton="true" lazy-init="default" autowire="default"
  dependency-check="default">
  <property name="jdbcTemplate">
   <ref bean="jdbcTemplate" />
  </property>
 </bean></beans>

IUserDAO.java

package com.studyspring.ch6;

import java.util.List;

public interface IUserDAO {
 List getUserList();
}
User.java

package com.studyspring.ch6;

public class User {
 private int uid;
 private String uname;
 private int ulevel;
 public int getUid() {
  return uid;
 }
 public void setUid(int uid) {
  this.uid = uid;
 }

 public int getUlevel() {
  return ulevel;
 }
 public void setUlevel(int ulevel) {
  this.ulevel = ulevel;
 }
 public String getUname() {
  return uname;
 }
 public void setUname(String uname) {
  this.uname = uname;
 }
 
}

UserDAOImpl.java
package com.studyspring.ch6;

import java.util.List;

import org.springframework.jdbc.core.JdbcTemplate;

public class UserDAOImpl implements IUserDAO {
 JdbcTemplate jdbcTemplate;
 public List getUserList() {
  List list=jdbcTemplate.query(new UserPSCreator(), new UserReader());
  return list;
 }
 public JdbcTemplate getJdbcTemplate() {
  return jdbcTemplate;
 }
 public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
  this.jdbcTemplate = jdbcTemplate;
 }

}

UserPSCreator.java

package com.studyspring.ch6;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import org.springframework.jdbc.core.PreparedStatementCreator;

public class UserPSCreator implements PreparedStatementCreator {

 public PreparedStatement createPreparedStatement(Connection conn)
   throws SQLException {
  String sql="select * from tbl_user";
  PreparedStatement ps=conn.prepareStatement(sql);
  return ps;
 }

}

UserReader.java

package com.studyspring.ch6;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.springframework.jdbc.core.ResultReader;
//ResultReader extends RowCallbackHandler
public class UserReader implements ResultReader {

 List users=new ArrayList();
 User user;
 public List getResults() {
  //该方法只用于返回对象
  return users;
 }

 public void processRow(ResultSet rs) throws SQLException {
  user=new User();
  user.setUid(rs.getInt("puser_no"));
  user.setUname(rs.getString("puser_name"));
  user.setUlevel(rs.getInt("puser_level"));
  users.add(user);
  //do{
  // System.out.println(rs.getInt(1));
  // System.out.println(rs.getString(2));
  // System.out.println(rs.getInt(3));
  //}while(rs.next());
 }
}

UserBasicORMapping.java

package com.studyspring.ch6;

import java.util.List;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
public class UserBasicORMapping {


 public static void main(String[] args) {
  ApplicationContext ctx=new FileSystemXmlApplicationContext("/src/applicationContext.xml");
  IUserDAO userDAO=(IUserDAO)ctx.getBean("userOimpl");
  List list=userDAO.getUserList();
  for(int i=0;i<list.size();i++){
   User user=(User)list.get(i);
   System.out.println("~~~~~~******~~~~~~~");
   System.out.println("第"+(i+1)+"位用户:"+user.getUname());
   System.out.println("~~~~~~******~~~~~~~");
  }
 }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值