¸üÐÂʱ¼ä:2023Äê10ÔÂ17ÈÕ09ʱ52·Ö À´Ô´:ÀÖÓãµç¾º ä¯ÀÀ´ÎÊý:

¡¡¡¡ÔÚSpring¿ò¼ÜÖУ¬ÎÒÃÇ¿ÉÒÔ¸üÓÐЧµØÊ¹ÓÃJDBC(JavaÊý¾Ý¿âÁ¬½Ó)À´·ÃÎʺͲÙ×÷Êý¾Ý¿â¡£SpringÌṩÁËһЩ¹¤¾ßºÍÀàÀ´¼ò»¯JDBC±à³Ì£¬¼õÉÙÁËÑù°å´úÂëµÄ±àд£¬²¢ÌṩÁ˸ü¸ß¼¶µÄ¹¦ÄÜ¡£ÒÔÏÂÊÇһЩÔÚSpringÖиüÓÐЧµØÊ¹ÓÃJDBCµÄ·½·¨£º
¡¡¡¡SpringÍÆ¼öʹÓÃÊý¾ÝÔ´(DataSource)À´¹ÜÀíÊý¾Ý¿âÁ¬½Ó£¬¶ø²»ÊÇÖ±½ÓʹÓÃJDBCÇý¶¯³ÌÐò¡£Äú¿ÉÒÔÅäÖÃÊý¾ÝÔ´²¢½«Æä×¢Èëµ½ÄúµÄÓ¦ÓóÌÐòÖС£SpringµÄÊý¾ÝÔ´¹ÜÀí¹¦ÄÜÓÐÖúÓÚ¹ÜÀíÊý¾Ý¿âÁ¬½Ó³Ø£¬Ìá¸ßÐÔÄܲ¢½µµÍ×ÊÔ´ÏûºÄ¡£
¡¡¡¡ÅäÖÃÊý¾ÝÔ´µÄXMLʾÀý£º
<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/mydb" />
<property name="username" value="username" />
<property name="password" value="password" />
</bean>
¡¡¡¡SpringµÄJdbcTemplateÊÇÒ»¸öÇ¿´óµÄ¹¤¾ß£¬¿ÉÒÔ´ó´ó¼ò»¯JDBC±à³Ì¡£ËüÌṩÁËÒ»×é¼òµ¥µÄ·½·¨£¬ÓÃÓÚÖ´ÐÐSQL²éѯºÍ¸üвÙ×÷£¬´¦Àí½á¹û¼¯ÒÔ¼°´¦ÀíÒì³£¡£Äú¿ÉÒÔ½«Êý¾ÝÔ´×¢Èëµ½JdbcTemplateÖУ¬²¢Ê¹ÓÃËüÀ´Ö´ÐÐSQL²Ù×÷¡£
¡¡¡¡Ê¹ÓÃJdbcTemplateÖ´Ðвéѯ²Ù×÷£º
@Autowired
private JdbcTemplate jdbcTemplate;
public List<String> getNames() {
return jdbcTemplate.queryForList("SELECT name FROM users", String.class);
}
¡¡¡¡SpringµÄJdbcTemplateÖ§³ÖʹÓÃÃüÃû²ÎÊýºÍռλ·û£¬ÒÔ¼õÉÙSQL×¢ÈëµÄ·çÏÕ²¢Ìá¸ß¿É¶ÁÐÔ¡£

¡¡¡¡Ê¹ÓÃÃüÃû²ÎÊý£º
Map<String, Object> params = new HashMap<>();
params.put("id", 1);
jdbcTemplate.queryForObject("SELECT name FROM users WHERE id = :id", params, String.class);
¡¡¡¡Ê¹ÓÃռλ·û£º
jdbcTemplate.queryForObject("SELECT name FROM users WHERE id = ?", new Object[]{1}, String.class);
¡¡¡¡SpringÔÊÐíÄúÖ´ÐÐÅú´¦Àí²Ù×÷£¬ÒÔÔÚµ¥¸öÊÂÎñÖÐÅúÁ¿²åÈë¡¢¸üлòɾ³ý¼Ç¼¡£Õâ¿ÉÒÔÌá¸ßÐÔÄܲ¢¼õÉÙÓëÊý¾Ý¿âµÄͨÐÅ¿ªÏú¡£
¡¡¡¡Ö´ÐÐÅú´¦Àí²Ù×÷£º
jdbcTemplate.batchUpdate("INSERT INTO users (name) VALUES (?)", names);
¡¡¡¡SpringµÄJdbcTemplate²¶»ñ²¢´¦ÀíJDBCÒì³££¬½«ËüÃÇת»¯ÎªSpringµÄDataAccessException£¬Ê¹Òì³£´¦Àí¸ü¼Ó·½±ã¡£
¡¡¡¡Òì³£´¦Àí£º
try {
jdbcTemplate.update("INSERT INTO users (name) VALUES (?)", name);
} catch (DataAccessException ex) {
// ´¦ÀíÒì³£
}
¡¡¡¡Spring»¹ÌṩÁËÉùÃ÷ʽÊÂÎñ¹ÜÀí£¬Í¨¹ýÔÚ·½·¨ÉÏʹÓÃ×¢½â»òXMLÅäÖÃÀ´¹ÜÀíÊÂÎñ¡£ÕâÔÊÐíÎÒÃÇÒÔÉùÃ÷ÐÔ·½Ê½¿ØÖÆÊÂÎñµÄ±ß½çºÍÌá½»¡£
¡¡¡¡Ê¹ÓÃÉùÃ÷ʽÊÂÎñ£º
@Transactional
public void transferMoney(Account fromAccount, Account toAccount, double amount) {
// Ö´ÐÐתÕ˲Ù×÷
}
¡¡¡¡ÕâЩ·½·¨¿ÉÒÔ°ïÖúÎÒÃǸüÓÐЧµØÊ¹ÓÃJDBC£¬²¢Í¨¹ýSpringµÄ¹¦ÄÜÌá¸ß´úÂëµÄ¿Éά»¤ÐÔºÍÐÔÄÜ¡£ÔÚʹÓÃʱ£¬È·±£Àí½âSpring¿ò¼ÜµÄºËÐĸÅÄîºÍJDBCµÄ»ù±¾ÖªÊ¶£¬ÒÔ±ãÕýÈ·ÅäÖúÍʹÓÃÕâЩ¹¦ÄÜ¡£
±±¾©Ð£Çø