Spring笔记4
程序员文章站
2023-11-16 16:33:58
Spring中的JdbcTemplate JdbcTemplate:他是spring框架中提供的一个对象,是对原始Jdbc API对象的简单封装。 JdbcTemplate的作用:用于和数据库交互的,实现对表的CRUD操作 JdbcTemplate的入门 导入相关的坐标 账户实体类的建立 操作数据库 ......
spring中的jdbctemplate
jdbctemplate:他是spring框架中提供的一个对象,是对原始jdbc api对象的简单封装。
jdbctemplate的作用:用于和数据库交互的,实现对表的crud操作
jdbctemplate的入门
导入相关的坐标
<packaging>jar</packaging> <dependencies> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-context</artifactid> <version>4.2.8.release</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-jdbc</artifactid> <version>5.0.3.release</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-tx</artifactid> <version>5.0.3.release</version> </dependency> <dependency> <groupid>mysql</groupid> <artifactid>mysql-connector-java</artifactid> <version>5.1.32</version> </dependency> </dependencies>
账户实体类的建立
package com.itheima.domain; import java.io.serializable; //账户的实体类 public class account implements serializable { private integer id; private string name; private float money; 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 float getmoney() { return money; } public void setmoney(float money) { this.money = money; } @override public string tostring() { return "account{" + "id=" + id + ", name='" + name + '\'' + ", money=" + money + '}'; } }
操作数据库
package com.itheima.jdbctemplate; import org.springframework.jdbc.core.jdbctemplate; import org.springframework.jdbc.datasource.drivermanagerdatasource; //jdbctemplate的最基本用法 public class jdbctemplatedemo1 { public static void main(string[] args) { //准备数据源:spring内置数据源 drivermanagerdatasource ds = new drivermanagerdatasource(); ds.setdriverclassname("com.mysql.jdbc.driver"); ds.seturl("jdbc:mysql://localhost:3306/eesy"); ds.setusername("root"); ds.setpassword("12345"); //创建jdbctemplate对象 jdbctemplate jt = new jdbctemplate(); //给jt设置数据源 jt.setdatasource(ds); //执行操作 jt.execute("insert into account(name,money)values('ccc',1000)"); } }
jdbctemplate在spring的ioc中使用
配置bean
<?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!--配置jdbctemplate--> <bean id="jdbctemplate" class="org.springframework.jdbc.core.jdbctemplate"> <property name="datasource" ref="datasource"></property> </bean> <!--配置数据源--> <bean id="datasource" class="org.springframework.jdbc.datasource.drivermanagerdatasource"> <property name="driverclassname" value="com.mysql.jdbc.driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/eesy"></property> <property name="username" value="root"></property> <property name="password" value="12345"></property> </bean> </beans>
测试是否可以操作数据库
报错:
nosuchbeandefinitionexception: no bean named 'jdbctemplate' is defined
原因:xxxx没有定义,区分大小写:
package com.itheima.jdbctemplate; import org.springframework.context.applicationcontext; import org.springframework.context.support.classpathxmlapplicationcontext; import org.springframework.jdbc.core.jdbctemplate; import org.springframework.jdbc.datasource.drivermanagerdatasource; //jdbctemplate的最基本用法 public class jdbctemplatedemo1 { public static void main(string[] args) { //获取容器 applicationcontext ac = new classpathxmlapplicationcontext("bean.xml"); //获取对象 jdbctemplate jt = ac.getbean("jdbctemplate",jdbctemplate.class); //执行操作 jt.execute("insert into account(name,money)values('ddd',13240)"); } }
spring中基于xml的声明事务控制步骤
<?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:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemalocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> <!-- 配置业务层--> <bean id="accountservice" class="com.itheima.service.impl.accountserviceimpl"> <property name="accountdao" ref="accountdao"></property> </bean> <!-- 配置账户的持久层--> <bean id="accountdao" class="com.itheima.dao.impl.accountdaoimpl"> <property name="datasource" ref="datasource"></property> </bean> <!-- 配置数据源--> <bean id="datasource" class="org.springframework.jdbc.datasource.drivermanagerdatasource"> <property name="driverclassname" value="com.mysql.jdbc.driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/eesy"></property> <property name="username" value="root"></property> <property name="password" value="12345"></property> </bean> <!--spring中基于xml的声明事务控制步骤步骤--> <!--1.配置事务管理器--> <bean id="transactionmanager" class="org.springframework.jdbc.datasource.datasourcetransactionmanager"> <property name="datasource" ref="datasource"></property> </bean> <!--2.配置事务的通知: 需要导入事务的约束 属性id:给事务通知一个唯一标识 属性transaction-manager:给事务通知提供一个事务管理器引用 --> <tx:advice id="txadvice" transaction-manager="transactionmanager"> <!--配置事务的属性 isolation:用于指定事务的隔离级别,默认值是default,表示使用数据库的默认隔离级别 propagation:用于指定事务的传播行为。默认值是required,表示一定会有事务,增删改的选择。查询方法可以选择supports read-only:用于指定事务是否只读。只有查询方法才能设置true.默认值是false.表示只读 timeout:用于指定事务的超时时间,默认值-1.表示永不超时。如果指定了数值,以秒为单位 rollback-for:用于指定一个异常,当产生该异常是,事务回滚,产生其他异常是,事务部回滚,没有默认值,表示任何异常都回滚 no-rollback-for:用于指定一个异常,当产生该异常时,事务不回滚,产生其他异常时事务回滚,没有默认值。表示任何异常都回滚 --> <tx:attributes> <tx:method name="*" propagation="required" read-only="false"/> <tx:method name="find*" propagation="supports" read-only="true"></tx:method> </tx:attributes> </tx:advice> <!--3.配置aop中的通用切入点表达式 --> <aop:config> <aop:pointcut id="pt1" expression="execution(* com.itheima.service.impl.*.*(..))"></aop:pointcut> <!--4.建立事务通知和切入点表达式的对应关系--> <aop:advisor advice-ref="txadvice" pointcut-ref="pt1"></aop:advisor> </aop:config> </beans>
上一篇: 【转载】腾讯云如何重置云服务器实例密码