1》接口(主要是增删改查的接口)BaseDao.java

[java] view plain copy
  1. /**
  2. *
  3. * @author fly.zhou
  4. */
  5. public interface IBaseDao {
  6. //增加对应实体的一条记录
  7. public boolean save(Object o);
  8. //更新对应实体的一条记录
  9. public boolean update(Object o);
  10. //增加或者更新对应实体的一条记录
  11. public boolean saveOrUpdate(Object o);
  12. //保存一系列对象集合
  13. public boolean saveOrUpdateAll(Collection l);
  14. //删除对应实体的一条记录
  15. public boolean delete(Object o);
  16. //根据id删除对应实体的一条记录
  17. public boolean delete(Class c, Serializable id);
  18. //执行hql语句删除一条记录
  19. public Integer delete(String hql, Object... values);
  20. //删除一系列数据
  21. public boolean deleteAll(Collection l);
  22. //执行hql语句查找
  23. public List find(String hql);
  24. //分页查询,多参数条件
  25. public List find(String hql, DataGridReq dgr, List values);
  26. //分页查询,多参数条件
  27. public List find(String hql, DataGridReq dgr, Object... values);
  28. //不带分页查询,多参数条件
  29. public List find(String hql, Object... values);
  30. //不带分页查询,多参数条件
  31. public boolean update(String hql, Object... values);
  32. //根据主键ID查询对应实体的一条记录
  33. public Object get(Class clazz, Serializable id);
  34. //获取某实体对象
  35. public Object load(Class c, Serializable id);
  36. //获取总记录数
  37. public Long total(String hql, List values);
  38. //获取总记录数
  39. public Long total(String hql, Object... values);
  40. //更新对应实体的某一条记录
  41. public boolean updateOneByProperty(Class clazz, Serializable id, String pName, Object pValue);
  42. //更新对应实体的某几条记录
  43. public boolean updateOneByPropertys(Class clazz, Serializable id, List<String> pName, List<Object> pValue);
  44. //更新对应实体的某几条记录(封装成map)
  45. public boolean updateOneByPropertys(Class clazz, Serializable id, Map<String, Object> map);
  46. //根据属性名以及对应的属性值查找一条记录
  47. public Object getSingleByProperty(Class clazz, String pName, Object pValue);
  48. //判断是否有对应的属性名和属性值存在,存在返回true
  49. public boolean ifHasOneByProperty(Class clazz, String pName, Object pValue);
  50. //根据一系列属性以及对应的属性值查询一条记录
  51. public Object getSingleByPropertys(Class clazz, List<String> pName, List<Object> pValue);
  52. //判断是否有一系列对应的属性名和属性值存在,存在返回true
  53. public boolean ifHasOneByPropertys(Class clazz, List<String> pName, List<Object> pValue);
  54. //根据一系列属性以及对应的属性值(封装成Map)查询一条记录
  55. public Object getSingleByPropertys(Class clazz, Map<String, Object> map);
  56. //判断是否有一系列对应的属性名和属性值(封装成Map)存在,存在返回true
  57. public boolean ifHasOneByPropertys(Class clazz, Map<String, Object> map);
  58. //通过某一对应的属性名和属性值,查询某一个属性的值
  59. public Object getValueByPropertys(Class clazz, Map<String, Object> map, String selectName);
  60. //通过一系列对应的属性名和属性值,查询某一个属性的值
  61. public Object getValueByProperty(Class clazz, String pName, Object pValue, String selectName);
  62. //通过一系列对应的属性名和属性值,查询某一个属性的值
  63. public Object getValueByPropertys(Class clazz, List<String> pNames, List<Object> pValues, String selectName);
  64. //查询对应实体的所有记录
  65. public List<Object> getObjects(Class clazz);
  66. //查询符合属性名以及对应的属性值的一系列记录
  67. public List<Object> getObjectsByProperty(Class clazz, String pName, Object pValue);
  68. //根据任意属性查询名以及对应的属性值的一系列记录
  69. public List<Object> getObjectsByAnyProperty(Class clazz, List<String> pName, List<Object> pValue);
  70. //查询符合一系列属性名以及对应的属性值的一系列记录
  71. public List<Object> getObjectsByPropertys(Class clazz, List<String> pName, List<Object> pValue);
  72. //根据某属性对应的属性值在某一范围内的一系列记录
  73. public List<Object> getObjectsByProperty(Class clazz, String pName, String operator, Object pValue);
  74. //根据某属性对应的属性值在某一范围内的一系列记录
  75. public List<Object> getObjectsByPropertys(Class clazz, List<String> pName, List<String> operator, List<Object> pValue);
  76. }

2》接口的实现 BaseDaoImpl.java

[java] view plain copy
  1. public class BaseDaoImpl implements IBaseDao {
  2. private static final Logger logger = Logger.getLogger(BaseDaoImpl.class);
  3. private HibernateTemplate hibernateTemplate;
  4. public HibernateTemplate getHibernateTemplate() {
  5. hibernateTemplate.setCacheQueries(true);// 开启二级查询缓存
  6. return hibernateTemplate;
  7. }
  8. @Autowired
  9. public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
  10. this.hibernateTemplate = hibernateTemplate;
  11. }
  12. @Override
  13. public boolean delete(Object o) {
  14. //        logger.info("删除");
  15. try {
  16. this.getHibernateTemplate().delete(o);
  17. return true;
  18. } catch (Exception e) {
  19. return false;
  20. }
  21. }
  22. @Override
  23. public boolean delete(Class c, Serializable id) {
  24. //        logger.info("删除");
  25. try {
  26. this.getHibernateTemplate().delete(get(c, id));
  27. return true;
  28. } catch (Exception e) {
  29. return false;
  30. }
  31. }
  32. @Override
  33. public Integer delete(final String hql, final Object... values) {
  34. return this.getHibernateTemplate().execute(new HibernateCallback<Integer>() {
  35. @Override
  36. public Integer doInHibernate(Session session) throws HibernateException, SQLException {
  37. Query q = session.createQuery(hql);
  38. if (values != null && values.length > 0) {
  39. for (int i = 0; i < values.length; i++) {
  40. q.setParameter(i, values[i]);
  41. }
  42. }
  43. return q.executeUpdate();
  44. }
  45. });
  46. }
  47. @Override
  48. public boolean deleteAll(Collection l) {
  49. //        logger.info("删除");
  50. try {
  51. this.getHibernateTemplate().deleteAll(l);
  52. return true;
  53. } catch (Exception e) {
  54. return false;
  55. }
  56. }
  57. @Override
  58. public boolean update(Object o) {
  59. //        logger.info("更新");
  60. try {
  61. this.getHibernateTemplate().update(o);
  62. return true;
  63. } catch (Exception e) {
  64. e.printStackTrace();
  65. return false;
  66. }
  67. }
  68. @Override
  69. public boolean save(Object o) {
  70. //        logger.info("保存");
  71. try {
  72. this.getHibernateTemplate().save(o);
  73. return true;
  74. } catch (Exception e) {
  75. return false;
  76. }
  77. }
  78. @Override
  79. public boolean saveOrUpdate(Object o) {
  80. try {
  81. this.getHibernateTemplate().saveOrUpdate(o);
  82. return true;
  83. } catch (Exception e) {
  84. return false;
  85. }
  86. }
  87. @Override
  88. public boolean saveOrUpdateAll(Collection l) {
  89. //        logger.info("编辑");
  90. try {
  91. this.getHibernateTemplate().saveOrUpdateAll(l);
  92. return true;
  93. } catch (Exception e) {
  94. return false;
  95. }
  96. }
  97. @Override
  98. public List find(String hql) {
  99. //        logger.info("查询");
  100. return this.getHibernateTemplate().find(hql);
  101. }
  102. @Override
  103. public List find(final String hql, final DataGridReq dgr, final List values) {
  104. return this.getHibernateTemplate().execute(new HibernateCallback<List>() {
  105. @Override
  106. public List doInHibernate(Session session) throws HibernateException, SQLException {
  107. Query q = session.createQuery(hql);
  108. if (values != null && values.size() > 0) {
  109. for (int i = 0; i < values.size(); i++) {
  110. q.setParameter(i, values.get(i));
  111. }
  112. }
  113. if (dgr == null) {
  114. return q.list();
  115. }
  116. return q.setFirstResult(dgr.getStart()).setMaxResults(dgr.getLimit() * dgr.getPage()).list();
  117. }
  118. });
  119. }
  120. @Override
  121. public List find(final String hql, final DataGridReq dgr, final Object... values) {
  122. return this.getHibernateTemplate().execute(new HibernateCallback<List>() {
  123. @Override
  124. public List doInHibernate(Session session) throws HibernateException, SQLException {
  125. Query q = session.createQuery(hql);
  126. if (values != null && values.length > 0) {
  127. for (int i = 0; i < values.length; i++) {
  128. q.setParameter(i, values[i]);
  129. }
  130. }
  131. if (dgr == null) {
  132. return q.list();
  133. }
  134. return q.setFirstResult(dgr.getStart()).setMaxResults(dgr.getLimit() * dgr.getPage()).list();
  135. }
  136. });
  137. }
  138. @Override
  139. public List find(String hql, Object... values) {
  140. return this.getHibernateTemplate().find(hql, values);
  141. }
  142. @Override
  143. public boolean update(final String hql, final Object... values) {
  144. try {
  145. this.getHibernateTemplate().bulkUpdate(hql, values);
  146. return true;
  147. } catch (Exception e) {
  148. return false;
  149. }
  150. }
  151. @Override
  152. public Object get(Class c, Serializable id) {
  153. return this.getHibernateTemplate().get(c, id);
  154. }
  155. @Override
  156. public Object load(Class c, Serializable id) {
  157. return this.getHibernateTemplate().load(c, id);
  158. }
  159. @Override
  160. public Long total(final String hql, final List values) {
  161. return this.getHibernateTemplate().execute(new HibernateCallback<Long>() {
  162. @Override
  163. public Long doInHibernate(Session session) throws HibernateException, SQLException {
  164. Query q = session.createQuery(hql);
  165. if (values != null && values.size() > 0) {
  166. for (int i = 0; i < values.size(); i++) {
  167. q.setParameter(i, values.get(i));
  168. }
  169. }
  170. return (Long) q.uniqueResult();
  171. }
  172. });
  173. }
  174. @Override
  175. public Long total(final String hql, final Object... values) {
  176. return this.getHibernateTemplate().execute(new HibernateCallback<Long>() {
  177. @Override
  178. public Long doInHibernate(Session session) throws HibernateException, SQLException {
  179. Query q = session.createQuery(hql);
  180. if (values != null && values.length > 0) {
  181. for (int i = 0; i < values.length; i++) {
  182. q.setParameter(i, values[i]);
  183. }
  184. }
  185. return (Long) q.uniqueResult();
  186. }
  187. });
  188. }
  189. @Override
  190. public boolean updateOneByProperty(Class clazz, Serializable id, String pName, Object pValue) {
  191. String hql = "update " + clazz.getName() + " entity set entity." + pName + " = '" + pValue + "' where entity.id = " + id;
  192. getHibernateTemplate().bulkUpdate(hql);
  193. return true;
  194. }
  195. @Override
  196. public boolean updateOneByPropertys(Class clazz, Serializable id, List<String> pName, List<Object> pValue) {
  197. String hql = "update " + clazz.getName() + " entity set entity.";
  198. int maxIndex = pName.size() - 1;
  199. for (int i = 0; i < maxIndex; i++) {
  200. hql += pName.get(i) + " = '" + pValue.get(i) + "', entity.";
  201. }
  202. hql += pName.get(maxIndex) + " = '" + pValue.get(maxIndex) + "'where entity.id = " + id;
  203. System.out.println(hql);
  204. getHibernateTemplate().bulkUpdate(hql);
  205. return true;
  206. }
  207. @Override
  208. public boolean updateOneByPropertys(Class clazz, Serializable id, Map<String, Object> map) {
  209. String hql = "update " + clazz.getName() + " entity set entity.";
  210. Set set = map.entrySet();
  211. if (set != null) {
  212. Iterator iterator = set.iterator();
  213. while (iterator.hasNext()) {
  214. Entry entry = (Entry) iterator.next();
  215. Object key = entry.getKey();
  216. Object value = entry.getValue();
  217. hql += key + " = '" + value + "' and entity.";
  218. }
  219. }
  220. hql = hql.substring(0, hql.length() - 12);
  221. hql += "'where entity.id = " + id;
  222. System.out.println(hql);
  223. getHibernateTemplate().bulkUpdate(hql);
  224. return true;
  225. }
  226. /**
  227. * 根据属性查询
  228. *
  229. * @param clazz
  230. * @param pName
  231. * @param pValue
  232. * @return
  233. */
  234. @Override
  235. public Object getSingleByProperty(Class clazz, String pName, Object pValue) {
  236. String hql = "from " + clazz.getName() + " entity where entity." + pName + " = '" + pValue + "'";
  237. List<Object> os = getHibernateTemplate().find(hql);
  238. if (os != null && !os.isEmpty()) {
  239. return os.get(0);
  240. } else {
  241. return null;
  242. }
  243. }
  244. /**
  245. * 根据属性查询
  246. *
  247. * @param clazz
  248. * @param pName
  249. * @param pValue
  250. * @return
  251. */
  252. @Override
  253. public boolean ifHasOneByProperty(Class clazz, String pName, Object pValue) {
  254. String hql = "from " + clazz.getName() + " entity where entity." + pName + " = '" + pValue + "'";
  255. List<Object> os = getHibernateTemplate().find(hql);
  256. if (os != null && !os.isEmpty()) {
  257. return true;
  258. } else {
  259. return false;
  260. }
  261. }
  262. /**
  263. * 根据属性查询
  264. *
  265. * @param clazz
  266. * @param pName
  267. * @param pValue
  268. * @return
  269. */
  270. @Override
  271. public List<Object> getObjectsByAnyProperty(Class clazz, List<String> pName, List<Object> pValue) {
  272. String hql = "from " + clazz.getName() + " entity where entity.";
  273. int maxIndex = pName.size() - 1;
  274. for (int i = 0; i < maxIndex; i++) {
  275. hql += pName.get(i) + " = '" + pValue.get(i) + "' or entity.";
  276. }
  277. hql += pName.get(maxIndex) + " = '" + pValue.get(maxIndex) + "'";
  278. System.out.println(hql);
  279. List<Object> os = getHibernateTemplate().find(hql);
  280. if (os != null && !os.isEmpty()) {
  281. return os;
  282. } else {
  283. return null;
  284. }
  285. }
  286. @Override
  287. public boolean ifHasOneByPropertys(Class clazz, List<String> pName, List<Object> pValue) {
  288. String hql = "from " + clazz.getName() + " entity where entity.";
  289. int maxIndex = pName.size() - 1;
  290. for (int i = 0; i < maxIndex; i++) {
  291. hql += pName.get(i) + " = '" + pValue.get(i) + "' and entity.";
  292. }
  293. hql += pName.get(maxIndex) + " = '" + pValue.get(maxIndex) + "'";
  294. System.out.println(hql);
  295. List<Object> os = getHibernateTemplate().find(hql);
  296. if (os != null && !os.isEmpty()) {
  297. return true;
  298. } else {
  299. return false;
  300. }
  301. }
  302. @Override
  303. public Object getSingleByPropertys(Class clazz, List<String> pName, List<Object> pValue) {
  304. String hql = "from " + clazz.getName() + " entity where entity.";
  305. int maxIndex = pName.size() - 1;
  306. for (int i = 0; i < maxIndex; i++) {
  307. hql += pName.get(i) + " = '" + pValue.get(i) + "' and entity.";
  308. }
  309. hql += pName.get(maxIndex) + " = '" + pValue.get(maxIndex) + "'";
  310. System.out.println(hql);
  311. List<Object> os = getHibernateTemplate().find(hql);
  312. if (os != null && !os.isEmpty()) {
  313. return os.get(0);
  314. } else {
  315. return null;
  316. }
  317. }
  318. @Override
  319. public Object getSingleByPropertys(Class clazz, Map<String, Object> map) {
  320. String hql = "from " + clazz.getName() + " entity where entity.";
  321. Set set = map.entrySet();
  322. if (set != null) {
  323. Iterator iterator = set.iterator();
  324. while (iterator.hasNext()) {
  325. Entry entry = (Entry) iterator.next();
  326. Object key = entry.getKey();
  327. Object value = entry.getValue();
  328. hql += key + " = '" + value + "' and entity.";
  329. }
  330. }
  331. hql = hql.substring(0, hql.length() - 12);
  332. System.out.println("hql = " + hql);
  333. List<Object> os = getHibernateTemplate().find(hql);
  334. if (os != null && !os.isEmpty()) {
  335. return os.get(0);
  336. } else {
  337. return null;
  338. }
  339. }
  340. @Override
  341. public boolean ifHasOneByPropertys(Class clazz, Map<String, Object> map) {
  342. String hql = "from " + clazz.getName() + " entity where entity.";
  343. Set set = map.entrySet();
  344. if (set != null) {
  345. Iterator iterator = set.iterator();
  346. while (iterator.hasNext()) {
  347. Entry entry = (Entry) iterator.next();
  348. Object key = entry.getKey();
  349. Object value = entry.getValue();
  350. hql += key + " = '" + value + "' and entity.";
  351. }
  352. }
  353. hql = hql.substring(0, hql.length() - 12);
  354. List<Object> os = getHibernateTemplate().find(hql);
  355. if (os != null && !os.isEmpty()) {
  356. return true;
  357. } else {
  358. return false;
  359. }
  360. }
  361. /**
  362. * 查询所有
  363. */
  364. @Override
  365. public List<Object> getObjects(Class clazz) {
  366. String hql = "from " + clazz.getName();
  367. List list = getHibernateTemplate().find(hql);
  368. return list;
  369. }
  370. /**
  371. * 根据属性查询 全部
  372. *
  373. * @param clazz
  374. * @param pName
  375. * @param pValue
  376. * @return
  377. */
  378. @Override
  379. public List<Object> getObjectsByProperty(Class clazz, String pName, Object pValue) {
  380. String hql = "from " + clazz.getName() + " entity where entity." + pName + " = '" + pValue + "'";
  381. return getHibernateTemplate().find(hql);
  382. }
  383. @Override
  384. public List<Object> getObjectsByPropertys(Class clazz, List<String> pName, List<Object> pValue) {
  385. String hql = "from " + clazz.getName() + " entity where entity.";
  386. int maxIndex = pName.size() - 1;
  387. for (int i = 0; i < maxIndex; i++) {
  388. hql += pName.get(i) + " = '" + pValue.get(i) + "' and ";
  389. }
  390. hql += pName.get(maxIndex) + " = '" + pValue.get(maxIndex) + "'";
  391. return getHibernateTemplate().find(hql);
  392. }
  393. /**
  394. * 根据属性查询 全部
  395. *
  396. * @param clazz
  397. * @param pName
  398. * @param pValue
  399. * @return
  400. */
  401. @Override
  402. public List<Object> getObjectsByProperty(Class clazz, String pName, String operator, Object pValue) {
  403. String hql = "from " + clazz.getName() + " entity where entity." + pName + " " + operator + pValue;
  404. return getHibernateTemplate().find(hql);
  405. }
  406. @Override
  407. public List<Object> getObjectsByPropertys(Class clazz, List<String> pName, List<String> operator, List<Object> pValue) {
  408. String hql = "from " + clazz.getName() + " entity where entity.";
  409. int maxIndex = pName.size() - 1;
  410. for (int i = 0; i < maxIndex; i++) {
  411. hql += pName.get(i) + " " + operator.get(i) + " '" + pValue.get(i) + "' and ";
  412. }
  413. hql += pName.get(maxIndex) + " " + operator.get(maxIndex) + " '" + pValue.get(maxIndex) + "'";
  414. System.out.println("hql = " + hql);
  415. return getHibernateTemplate().find(hql);
  416. }
  417. @Override
  418. public Object getValueByPropertys(Class clazz, Map<String, Object> map, String selectName) {
  419. String hql = "select entity." + selectName + "from " + clazz.getName() + " entity where entity.";
  420. Set set = map.entrySet();
  421. if (set != null) {
  422. Iterator iterator = set.iterator();
  423. while (iterator.hasNext()) {
  424. Entry entry = (Entry) iterator.next();
  425. Object key = entry.getKey();
  426. Object value = entry.getValue();
  427. hql += key + " = '" + value + "' and entity.";
  428. }
  429. }
  430. hql = hql.substring(0, hql.length() - 12);
  431. System.out.println("hql = " + hql);
  432. return getHibernateTemplate().find(hql);
  433. }
  434. @Override
  435. public Object getValueByProperty(Class clazz, String pName, Object pValue, String selectName) {
  436. String hql = "select entity." + selectName + " from " + clazz.getName() + " entity where entity." + pName + " = '" + pValue + "'";
  437. System.out.println("hql = " + hql);
  438. return getHibernateTemplate().find(hql);
  439. }
  440. @Override
  441. public Object getValueByPropertys(Class clazz, List<String> pNames, List<Object> pValues, String selectName) {
  442. String hql = "select entity." + selectName + "from " + clazz.getName() + " entity where entity.";
  443. int maxIndex = pNames.size() - 1;
  444. for (int i = 0; i < maxIndex; i++) {
  445. hql += pNames.get(i) + " = '" + pValues.get(i) + "' and ";
  446. }
  447. hql += pNames.get(maxIndex) + " = '" + pValues.get(maxIndex) + "'";
  448. System.out.println("hql = " + hql);
  449. return getHibernateTemplate().find(hql);
  450. }
  451. }

3》值得注意的地方Map如何获取key

[java] view plain copy
  1. Set set = map.entrySet();
  2. if (set != null) {
  3. Iterator iterator = set.iterator();
  4. while (iterator.hasNext()) {
  5. Entry entry = (Entry) iterator.next();
  6. Object key = entry.getKey();
  7. Object value = entry.getValue();
  8. hql += key + " = '" + value + "' and entity.";
  9. }
  10. }

4》这样写的话 会对项目省去大量的重复代码,在对具体的实体操作时,我们只需要把对应实体的实现继承BaseDaoImpl。

[java] view plain copy
  1. public class XXXDaoImpl extends BaseDaoImpl implements IXXXDao{}

当然我们也可以在XXXDaoImpl里面添加此实体特殊的实现方法。

5》对于hibernate,有时候为了提高查询和执行效率,我们只需要获取部分数据,而不需要拿出关联数据或者是整行的所有数据,这时候我们可以构造函数来解决这个问题。

hibernate实现增删改查的各种方法相关推荐

  1. Hibernate事务增删改查(第一部分)

    Hibernate的增删改查(事务) 1.Hibernate中的事物 1.1 设置事物隔离级别 Hibernate中书屋的隔离级别都是用字节存储的二进制 十进制 read uncommitted 读未 ...

  2. sql增删改查_增删改查!sql2pandas方法手册

    数据分析 Author:louwill Machine Learning Lab 作为一名数据分析师,利用SQL熟练的取数是一项必备的基础能力.除了SQL以外,Python的pandas也为我们提供了 ...

  3. 【数据分析】pandas增删改查!sql2pandas方法手册

    数据分析 Author:louwill Machine Learning Lab 作为一名数据分析师or算法工程师,利用SQL熟练的取数是一项必备的基础能力.除了SQL以外,Python的pandas ...

  4. ssh(Spring+Spring mvc+hibernate)简单增删改查案例

    最近和spring mvc干上了,各种奇葩问题,各种解决...现在想想这历程还挺艰辛的,好了,不在这墨迹了,我们进入正题. 据说,现在Springmvc很流行,既然很流行就搞搞它,看看是个什么鬼,于是 ...

  5. spring入门(11)-spring与hibernate整合完成增删改查的操作(封装HibernateTemplate模版类对象)

    今天是spring的最后一节课,这节课老师讲了spring与hibernate整合完成增删改查的操作,这是很重要的一节课,这也是第一次真正的实现spring结合Hibernate和数据库连接上,下面是 ...

  6. 基于 abp vNext 和 .NET Core 开发博客项目 - 自定义仓储之增删改查

    基于 abp vNext 和 .NET Core 开发博客项目 - 自定义仓储之增删改查 转载于:https://github.com/Meowv/Blog 本篇说一下自定义仓储的实现方式,其实在ab ...

  7. Node连接MySQL数据库进行基本的增删改查操作(一看就会)

    Node连接MySQL数据库进行基本的增删改查操作(一看就会) ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ...

  8. Android 中编写一个简易购物车,商品包括商品名称,单价,数量,可以对商品进行增删改查功能。(ArrayList,SQLite)

    Android 中编写一个简易购物车,商品包括商品名称,单价,数量,可以对商品进行增删改查功能.(ArrayList,SQLite) 布局(activity_main.xml): <?xml v ...

  9. python实现四位一并法_python 全栈开发,Day4(列表切片,增删改查,常用操作方法,元组,range,join)...

    一.列表 列表是python中的基础数据类型之一,它是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如: li = ['alex',123,Ture,(1,2,3,'wusir') ...

最新文章

  1. SQL视频总结(2)
  2. Shell脚本读取Redis键值对
  3. leetcode-简单题-题序:1+7
  4. 7.3 编址与存储相关计算
  5. android getdecorview 出现空指针,android – 为什么我从TabWidget得到一个空指针异常?...
  6. python 结构体数组_关于python:将结构化数组转换为常规NumPy数组
  7. 【亲测有效】装了双系统后在ubuntu下耳机没有声音的解决方法
  8. 1.4 php编译安装-安装顺序在最后
  9. 我的IOS学习历程-第三天
  10. ROS安装USB摄像头
  11. 对分法求非线性方程的根
  12. 案例-摩拜与哈罗测试自动化演变
  13. 【GitHub】Your account has been flagged.解决方法
  14. 快速搭建自己的conda环境---以bioconda为例
  15. 老铁啊,我同你讲, 这年头不会点 Git 真不行!!!
  16. 罕见、二度闯关IPO,发行人因持续经营能力存疑被否
  17. docker:报错docker: Error response from daemon: Mounts denied:
  18. Python——递归:这帮小兔崽子、汉诺塔
  19. linux系统u盘修复,SystemRescueCd(Linux系统修复盘) v6.0.3 官方免费版
  20. 智能制造转型升级,与“懂行人”偕行

热门文章

  1. 【Android 逆向】Android 逆向通用工具开发 ( Android 端远程命令工具 | Android 端可执行程序的 main 函数操作 | TCP 协议服务器建立 | 接收客户端数据 )
  2. 【错误记录】执行 Python 程序报错 ( NameError: name ‘reload‘ is not defined )
  3. 【错误记录】Android Studio 配置 AspectJ 报错 ( Failed to create Jar file C:\xxx\aspectjtools-1.8.10.jar. )
  4. 【Java 虚拟机原理】Class 字节码二进制文件分析 三 ( 访问和修饰标志 | 类索引 | 父类索引 | 接口计数器 | 接口表 | 字段计数器 | 字段表 )
  5. 【Android 组件化】路由组件 ( 注解处理器获取被注解的节点 )
  6. 【Android 电量优化】JobScheduler 相关源码分析 ( JobSchedulerService 源码分析 | 任务检查 | 任务执行 )
  7. 【C++】函数 指针类型参数 与 引用类型参数 对比 ( 修改外部变量需要传入的参数要求 | 参数作返回值 )
  8. .Net软件测试化之道 [James D.MCCaffrey]
  9. Oracle 数据表误删恢复 Flashback
  10. Java 面向对象编程、jQuery、JavaScript、servlet、javabean----理论知识