Template写mysql时注意,空的和null型的不要插入数据,否则查出来可能会不否和条件

final String sql = "select phonenum from order_records where phonenum=?";
return template.execute(new HibernateCallback() {


@Override
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = (Query) session.createQuery(sql);
if(phone != null ){
query.setParameter(0, phone);
}


return query.list();

}

});

像上面这样,当你输入为空的时候,你笨来想查找的是所有的数据,这里实际查找出来的是满足当前字段为空的数据,所以

final String sql = "select phonenum from order_records where phonenum=?";
return template.execute(new HibernateCallback() {


@Override
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = (Query) session.createQuery(sql);
if(phone != null && !("").equals(phone)){
query.setParameter(0, phone);
}


return query.list();

}
});

这里要记得查询的条件,这是我犯的错误

首先,你需要安装MySQL和PyCharm,然后按照以下步骤操作: 1. 创建数据库和表格 打开MySQL,创建一个新的数据库,例如“drug_interactions”,然后创建一个表格来存储药物信息和相互作用信息。 ```sql CREATE DATABASE drug_interactions; USE drug_interactions; CREATE TABLE drugs ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(255) NOT NULL, description TEXT, PRIMARY KEY (id) ); CREATE TABLE interactions ( id INT NOT NULL AUTO_INCREMENT, drug1_id INT NOT NULL, drug2_id INT NOT NULL, description TEXT, PRIMARY KEY (id), FOREIGN KEY (drug1_id) REFERENCES drugs(id), FOREIGN KEY (drug2_id) REFERENCES drugs(id) ); ``` 2. 添加数据 使用以下代码将一些药物和相互作用数据添加到数据库中。 ```python import mysql.connector # 连接数据库 mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="drug_interactions" ) # 插入药物信息 mycursor = mydb.cursor() sql = "INSERT INTO drugs (name, description) VALUES (%s, %s)" val = ("Aspirin", "Pain reliever and anti-inflammatory drug") mycursor.execute(sql, val) val = ("Ibuprofen", "Pain reliever and anti-inflammatory drug") mycursor.execute(sql, val) mydb.commit() # 插入相互作用信息 sql = "INSERT INTO interactions (drug1_id, drug2_id, description) VALUES (%s, %s, %s)" val = (1, 2, "Taking aspirin and ibuprofen together may increase the risk of stomach bleeding.") mycursor.execute(sql, val) mydb.commit() ``` 3. 创建网站 在PyCharm中创建一个新的Flask项目,然后创建一个包含两个输入框和一个提交按钮的HTML表单,以便用户可以输入两种药物的名称。当用户提交表单,使用以下代码查询数据库以获取药物和相互作用信息,并在网站上显示它们。 ```python from flask import Flask, render_template, request import mysql.connector app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') @app.route('/interactions', methods=['POST']) def interactions(): drug1 = request.form['drug1'] drug2 = request.form['drug2'] # 连接数据库 mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="drug_interactions" ) # 查询药物信息 mycursor = mydb.cursor() sql = "SELECT * FROM drugs WHERE name = %s" val = (drug1,) mycursor.execute(sql, val) drug1_info = mycursor.fetchone() val = (drug2,) mycursor.execute(sql, val) drug2_info = mycursor.fetchone() # 查询相互作用信息 sql = "SELECT * FROM interactions WHERE drug1_id = %s AND drug2_id = %s" val = (drug1_info[0], drug2_info[0]) mycursor.execute(sql, val) interaction_info = mycursor.fetchone() return render_template('interactions.html', drug1_info=drug1_info, drug2_info=drug2_info, interaction_info=interaction_info) if __name__ == '__main__': app.run() ``` 4. 创建HTML模板 创建一个包含表单和查询结果的HTML模板,例如“index.html”和“interactions.html”。 index.html: ```html <!DOCTYPE html> <html> <head> <title>Drug Interactions</title> </head> <body> <form action="/interactions" method="post"> <label for="drug1">Drug 1:</label> <input type="text" name="drug1" id="drug1"> <label for="drug2">Drug 2:</label> <input type="text" name="drug2" id="drug2"> <input type="submit" value="Submit"> </form> </body> </html> ``` interactions.html: ```html <!DOCTYPE html> <html> <head> <title>Drug Interactions</title> </head> <body> <h1>Drug Interactions</h1> <h2>{{ drug1_info[1] }}:</h2> <p>{{ drug1_info[2] }}</p> <h2>{{ drug2_info[1] }}:</h2> <p>{{ drug2_info[2] }}</p> {% if interaction_info %} <h2>Interaction:</h2> <p>{{ interaction_info[3] }}</p> {% else %} <p>No interaction found.</p> {% endif %} </body> </html> ``` 5. 运行网站 在PyCharm中运行项目,并使用浏览器访问http://localhost:5000/,输入两种药物的名称并点击提交按钮,即可查看它们的信息和相互作用信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值