spring通过jdbc连接数据库本⽂实例为⼤家分享了spring通过jdbc连接数据库的具体代码,供⼤家参考,具体内容如下⾸先看下整个⼯程的架构⽬录:
需要的jar包:
⼀、建表
create table student(
id int primary key auto_increment,
name varchar(32),
age int,
phone varchar(32)
);
⼆、新建与数据库对应JavaBean
ak.bean;
public class Student {
/**
* ⼀个标准的javaBean对象 :
* 表字段对应的属性
* 属性对应的getter、setter⽅法
* ⽆参构造器
* 除id[主键]之外其他参数组成的构造器
* 所有参数组成的构造器
*/
private Integer id;
private String name;
private Integer age;
private String phone;
public Student() {
super();
}
public Student(String name, Integer age, String phone) {
super();
this.name = name;
this.age = age;
this.phone = phone;
}
public Student(Integer id, String name, Integer age, String phone) {
super();
this.id = id;
this.name = name;
this.age = age;
this.phone = phone;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}
三、spring的applicationContext配置⽂件
<beans xmlns="/schema/beans"
xmlns:context="/schema/context"
xmlns:xsi="/2001/XMLSchema-instance"
xsi:schemaLocation="/schema/beans
/schema/beans/spring-beans-3.2.xsd
/schema/context
/schema/context/spring-context-3.2.xsd">
<!--
使⽤spring提供的整合jdbc功能
需要导⼊DAO层提供的两个jar包[spring-jdbc spring-tx]
通过ioc依赖注⼊将JdbcTemplate注⼊给StuDaoImpl
-
jdbctemplate查询一条数据->
<bean id="dao" class="ak.dao.StuDaoImpl">
<!--
name="jt" setJt(JdbcTemplate jt)
ref="jt" id="jt"
⾃定义对象 ref=""
-->
<property name="jt" ref="jt"></property>
</bean>
<bean id="jt" class="org.JdbcTemplate">
<property name="dataSource" ref="ds"></property>
</bean>
<!--
此时的JdbcTemplate还不具备数据库连接能⼒
为了让其具备数据库连接能⼒,需要为其提供DataSource 连接池、数据源
setDataSource(DataSource ds)
需要在ioc容器中再配置⼀个DataSource对象:
driverClassName
url
username
password
maxIdle
maxActive
maxWait
DataSource 接⼝
1 实现类
BasicDataSource commons-dbcp.jar
spring框架⾃带了DataSource实现类
DriverManagerDataSource
setDriverClassName(String driver)
setUrl(String url)
setUsername(String u)
setPassword(String p)
[
ref属性 : 表⽰调⽤该⽅法需要注⼊的数据类型:⾃定义类型/引⽤类型
value属性 : 表⽰调⽤该⽅法需要注⼊的数据类型 : 基本数据类型/String类型/Class类型 ]
2 ⼯⼚bean
-->
<bean id="ds" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="sql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/etoak"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean>
</beans>
四、编写Dao
ak.dao;
import java.util.List;
import java.util.Map;
ak.bean.Student;
/**
* 使⽤jdbc⽅式对student表数据进⾏CRUD操作
* 1 传统的jdbc开发⽅式 [ConFactory ...]
* 2 spring提供的整合⽅案 JdbcTemplate
*/
public class StuDaoImpl {
private JdbcTemplate jt;
public void setJt(JdbcTemplate jt) {
this.jt = jt;
}
/**
* JdbcTemplate将连接数据库执⾏添加操作的流程封装在其update(sql)
*/
public boolean addStu(Student stu){
String sql = "insert into student values(null,?,?,?)";
Object[] args = {Name() , Age() , Phone()};
int result = jt.update(sql , args);
/
/ result 执⾏当前操作影响的数据量
return result==1;
}
public boolean delStuById(Integer id){
String sql = "delete from student where id="+id;
return jt.update(sql)==1;
}
public boolean updateStu(Student stu){
String sql = "update student set name=?,age=?,phone=? where id=?";
Object[] args = {Name() , Age() , Phone() , Id()}; return jt.update(sql , args)==1;
}
/**
* jt.queryForMap(sql) - Map
* Jdbc不是ORM⼯具,不知道sql查询的对应哪个对象
* 只能将查询出的关系型数据封装在⼀个Map集合中返回
* {字段名=字段值,...}
* ("id/name/age/phone")
* 注意 :
* 在使⽤queryForMap(sql)查询单条数据时
* 必须能够确保根据传⼊的sql语句能够并且只能查询出单条数据
* 否则使⽤该⽅法会抛出异常
*/
public Map selStuById(Integer id){
String sql = "select * from student where id="+id;
Map map = jt.queryForMap(sql);
return map;
}
// List<Map> 每⼀个student被封装成了⼀个Map对象
public List selectAllStus(){
String sql = "select * from student";
return jt.queryForList(sql);
}
public int selectStuCount(){
String sql = "select count(*) from student";
return jt.queryForInt(sql);
}
public List selectStusByPage(int start , int max){
String sql = "select * from student limit ?,?";
Object[] args = {start , max};
return jt.queryForList(sql , args);
}
}
五、测试
ak.test;
import t.support.ClassPathXmlApplicationContext;
ak.bean.Student;
ak.dao.StuDaoImpl;
public class Test {
public static void main(String[] args) {
ApplicationContext ac = new ClassPathXmlApplicationContext("l");
StuDaoImpl dao = (Bean("dao");
Student stu = new Student("sheldon",30,"111");
boolean flag = dao.addStu(stu);
System.out.println(flag);
}
}
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论