DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
时间: 2023-11-08 17:32:26 浏览: 39
The above code creates a new instance of a DruidDataSource object by calling the createDataSource() method of the DruidDataSourceFactory class, passing in a Properties object named prop as an argument. The prop object contains a set of configuration properties that define the connection parameters for the data source, such as the JDBC URL, username, password, and other settings. Once the data source is created, it can be used to obtain a connection to a database for executing SQL statements or performing other database operations.
相关问题
package studentsSystem; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.Properties; import javax.sql.DataSource; import com.alibaba.druid.pool.DruidDataSourceFactory; public class system { public static void main(String[] args) throws Exception{ // TODO Auto-generated method stub; Properties prop=new Properties(); prop.load(new FileInputStream("shixun/src/druid.properties")); DataSource dataSource=DruidDataSourceFactory.createDataSource(prop); Connection conn=dataSource.getConnection(); String sql="update student set 姓名=王五 where 学号=01"; PreparedStatement pstm=conn.prepareStatement(sql); ResultSet rs=pstm.executeQuery(); pstm.close(); conn.close(); } }
这段代码的作用是使用阿里巴巴的 Druid 数据库连接池框架连接到数据库,并执行一个 SQL 更新语句,将学号为 01 的学生的姓名修改为“王五”。
具体实现步骤如下:
1. 读取数据库连接池的配置信息,这些信息保存在 "druid.properties" 文件中。
2. 使用 DruidDataSourceFactory.createDataSource(prop) 方法创建一个 Druid 数据库连接池。
3. 调用 dataSource.getConnection() 方法获取一个数据库连接对象。
4. 构造一个 SQL 更新语句,将学号为 01 的学生的姓名修改为“王五”。
5. 通过调用 conn.prepareStatement(sql) 方法创建一个 PreparedStatement 对象,然后执行更新操作。
6. 最后关闭 PreparedStatement 对象和数据库连接对象。
需要注意的是,这段代码中的 SQL 更新语句没有使用 PreparedStatement 对象的 setXXX 方法设置参数值,这是不规范的做法,容易引起 SQL 注入等安全问题。正确的做法应该是使用 PreparedStatement 对象的 setXXX 方法来设置参数值,如下所示:
```
String sql="update student set 姓名=? where 学号=?";
PreparedStatement pstm=conn.prepareStatement(sql);
pstm.setString(1, "王五");
pstm.setString(2, "01");
pstm.executeUpdate();
```
package conn; import com.alibaba.druid.pool.DruidDataSourceFactory; import javax.sql.DataSource; import java.io.FileInputStream; import java.io.IOException; import java.sql.Connection; import java.sql.SQLException; import java.util.Properties; public class JDBCUtils { public static DataSource dataSource; static{ //1.导入jar包 //2.定义配置文件 //3. 加载配置文件 Properties prop = new Properties(); try { prop.load(new FileInputStream("D:\\projectTraining\\JBDCdemo01\\src\\druid.properties")); //4. 获取连接池对象 dataSource = DruidDataSourceFactory.createDataSource(prop); } catch (IOException e){ throw new RuntimeException(e); } catch (Exception e){ throw new RuntimeException(e); } //5. 获取数据库连接 Connection // Connection connection = dataSource.getConnection(); // System.out.println(connection); //获取到了连接后就可以继续做其他操作了 //System.out.println(System.getProperty("user.dir")); } /* * @return * @throws SQLException */ public static Connection getConnection() throws SQLException { return dataSource.getConnenction; } }出现Cannot resolve symbol 'getConnenction'怎么解决
在 `getConnection()` 方法中,应该调用 `dataSource.getConnection()` 而不是 `dataSource.getConnenction`。修改后的代码如下:
```java
public static Connection getConnection() throws SQLException {
return dataSource.getConnection();
}
```
修改完之后,再次编译运行代码即可。