SELECT * FROM users WHERE emails like "%b@email.com%"
这样bb@email.com的用户也查出来了,不符合预期。
方法二:
利用mysql 字符串函数 find_in_set()
SELECT * FROM users WHERE find_in_set('aa@email.com', emails)
package basicimport java.sql.Connection
import java.sql.DriverManager
import java.sql.PreparedStatement
import java.sql.ResultSet
import java.sql.SQLException
import java.sql.Statement
public class JDBC {
public void findAll() {
try {
// 获得数据库驱动
//由于长时间不写,驱动名和URL都忘记了,不知道对不对,你应该知道的,自己改一下的哈
String url = "jdbc:oracle:thin:@localhost:1521:XE"
String userName = "system"
String password = "system"
Class.forName("oracle.jdbc.driver.OracleDriver")
// 创建连接
Connection conn = DriverManager.getConnection(url, userName,
password)
// 新建发送sql语句的对象
Statement st = conn.createStatement()
// 执行sql
String sql = "select * from users"
ResultSet rs = st.executeQuery(sql)
// 处理结果
while(rs.next()){
//这个地方就是给你的封装类属性赋值
System.out.println("UserName:"+rs.getString(0))
}
// 关闭连接
rs.close()
st.close()
conn.close()
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace()
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace()
}
}
public void delete(){
try {
//步骤还是那六个步骤,前边的两步是一样的
String url = "jdbc:oracle:thin:@localhost:1521:XE"
String userName = "system"
String password = "system"
Class.forName("oracle.jdbc.driver.OracleDriver")
Connection conn = DriverManager.getConnection(url,userName,password)
//这里的发送sql语句的对象是PreparedStatement,成为预处理sql对象,因为按条件删除是需要不定值的
String sql = "delete from users where id = ?"
PreparedStatement ps = conn.prepareStatement(sql)
ps.setInt(0, 1)
int row = ps.executeUpdate()
if(row!=0){
System.out.println("删除成功!")
}
// 关闭连接
rs.close()
st.close()
conn.close()
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace()
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace()
}
}
}
我只写了查询和删除,添加、修改和删除非常之像,这是因为查询对数据库没有改动,而增删改都对数据库进行了修改,所以这三个非常像……呵呵,你自己看着办吧
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)