这是例外:当我在springs上运行我的testDao文件时,springs中是否有给数据库的路径?
org.postgresql.util.PSQLException: The server requested password-based authentication, but no password was provided.
at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:473)
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:203)
at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:65)
at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:159)
at org.postgresql.Driver.makeConnection(Driver.java:416)
at org.postgresql.Driver.connect(Driver.java:283)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.test.dao.java.TestDao.getConnection(TestDao.java:37)
at com.test.dao.java.TestDao.getTest(TestDao.java:61)
at com.test.main.java.TestMain.main(TestMain.java:33)
Run Code Online (Sandbox Code Playgroud)
这里是我的>> testDao文件,与PostgreSQL建立连接
@Component
public class TestDao {
static PreparedStatement ps;
ResultSet rs;
Connection conn= null;
/**
* @return
* @throws SQLException
* @throws ClassNotFoundException
*/
private Connection getConnection() throws SQLException, ClassNotFoundException,FileNotFoundException,NullPointerException{
if(conn==null)
{
try {
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(
"jdbc:postgresql://localhost:5432/testdb?user=postgres & password=postgres");
conn.close();
} …Run Code Online (Sandbox Code Playgroud) 为什么我们使用setInt和select查询而不是在数据库中已存在值时使用getInt?
try {
conn = getConnection();
ps = conn.prepareStatement("SELECT * FROM circle where id =?");
ps.setInt(1, circleId);
Circle circle = null;
rs = ps.executeQuery();
if (rs.next()) {
//String s = rs.getString(circleId);
circle = new Circle(circleId, rs.getString("name"));
}
Run Code Online (Sandbox Code Playgroud)