JAVA jdbcTemplate更改数据库,如何创建新的连接,把值赋给jdbcTemplate。

JAVA jdbcTemplate更改数据库,如何创建新的连接,把值赋给jdbcTemplate。,第1张

<beans>

<bean id="dataSource"

class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">

<property name="driverClassName">

<value>net.sourceforge.jtds.jdbc.Driver</value>

</property>

<property name="url">

<value>jdbc:jtds:sqlserver://127.0.0.1:1433/Sample</value>

</property>

<property name="username">

<value>test</value>

</property>

<property name="password">

<value>baidu</value>

</property>

</bean>

<bean id="transactionManager"

class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

<property name="dataSource">

<ref local="dataSource" />

</property>

</bean>

<bean id="userDAO" class="net.xiaxin.dao.UserDAO">

<property name="dataSource">

<ref local="dataSource" />

</property>

<property name="transactionManager">

<ref local="transactionManager" />

</property>

</bean>

</beans>

配置中包含了三个节点:

Ø dataSource

这里我们采用了apache dhcp组件提供的DataSource实现,并为其配置了JDBC驱动、数据库URL、用户名和密码等参数。

Ø transactionManager

针对JDBC DataSource类型的数据源,我们选用了DataSourceTransactionManager

作为事务管理组件。

如果需要使用基于容器的数据源(JNDI),我们可以采用如下配置:

<bean id="dataSource"

class="org.springframework.jndi.JndiObjectFactoryBean">

<property name="jndiName">

<value>jdbc/sample</value>

</property>

</bean>

<bean id="transactionManager"

class="org.springframework.transaction.jta.JtaTransactionManager"/>

Ø userDAO

申明了一个UserDAO Bean,并为其指定了dataSource和

transactionManger资源。

UserDAO对应的代码如下:

public class UserDAO {

private DataSource dataSource

private PlatformTransactionManager transactionManager

public PlatformTransactionManager getTransactionManager() {

return transactionManager

}

public void setTransactionManager(PlatformTransactionManager

transactionManager) {

this.transactionManager = transactionManager

}

public DataSource executeTestSource() {

return dataSource

}

public void setDataSource(DataSource dataSource) {

this.dataSource = dataSource

}

public void insertUser() {

TransactionTemplate tt =new TransactionTemplate(getTransactionManager())

tt.execute(new TransactionCallback() {

public Object doInTransaction(TransactionStatus status) {

JdbcTemplate jt = new JdbcTemplate(executeTestSource())

jt.update(

"insert into users (username) values ('xiaxin')")

jt.update(

"insert into users (id,username) values(2,

'erica')")

return null

}

})

}

}

可以看到,在insertUser方法中,我们引入了一个新的模板类:org.springframework.transaction.support.TransactionTemplate。 TransactionTemplate封装了事务管理的功能,包括异常时的事务回滚,以及 *** 作成功后的事务提交。和JdbcTemplate一样,它使得我们无需在琐碎的try/catch/finally代码中徘徊。

在doInTransaction中进行的 *** 作,如果抛出未捕获异常将被自动回滚,如果成功执行,则将被自动提交。

1、创建web 工程springJdbcTemplate

2、添加Spring能力 在此需要将jdbc包也同时加入

3、配置上mysql的连接驱动(拷贝mysql驱动包,如果不拷贝报错很诡异)

在applicationContext.xml中进行配置在beans标签中填写<beanid="jdbcTemplate"class="org.springframework.jdbc.core.JdbcTemplate"><propertyname="dataSource"><reflocal="dataSource"/></property></bean><beanid="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource"><propertyname="driverClassName"><value>com.mysql.jdbc.Driver<alue></property><propertyname="url"><value>jdbc:mysql://localhost:3306/myspringjdbcdb<alue></property><propertyname="username"><value>root<alue></property><propertyname="password"><value>root<alue></property></bean>4、创建包结构并且写出类(每个类中可以没内容)

5、每个类中的源代码

UserDao.java

UserDaoImp.java

此项写完填写在applicationContext.xml中进行配置在beans标签中填写

User.java

每个成员变量都写上get和set方法并且在此类中还要加入

此项写完填写在applicationContext.xml中进行配置在beans标签中填写

测试类TestAction.java

打印出结果:

出现空指针异常可能有多种原因,以下是几种可能的原因:

1.未正确注入JdbcTemplate对象

如果在使用JdbcTemplate时出现空指针异常,可能是因为没有正确注入JdbcTemplate对象。在使用注解配置时,需要确保已经在配置文件中正确地配置了JdbcTemplate,并且已经将其注入到需要使用它的类中。

2.未正确配置数据库连接信息

如果未正确配置数据库连接信息,可能会导致JdbcTemplate对象无法连接到数据库。这可能会导致空指针异常。

3.查询结果为空

如果执行查询 *** 作时返回的结果为空,可能会导致空指针异常。在使用JdbcTemplate时,需要确保查询结果不为空才能安全地使用它。

4.对象未实例化

在使用JdbcTemplate时,可能会出现因为对象未正确实例化而导致的空指针异常。在使用JdbcTemplate之前,确保已经正确地实例化了它。

有帮到你的话望采纳 谢谢~


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11551216.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存